\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b\i0\ulnone\fs24\fc0\cf0 ar
\b0 maintains groups of files combined into a single archive file. Its main use is to create and update library files as used by the loader. It can be used, though, for any similar purpose. N.B: This version of ar uses a ASCII-format archive which is portable among the various machines running UNIX. Programs for dealing with older formats are available: see arcv(8).
[10@]
CommandOption
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\f0\b0\i0\ulnone\ql\fs24\fi0\li0\gray0\fc0\cf0\up0\dn0 Delete the named files from the archive file
H{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Replace the named files in the archive file. If the optional character u is used with r, then only those files with `last-modified' dates later than the archive files are replaced. If an optional positioning character from the set abi is used, then the posname argument must be present and specifies that new files are to be placed after (a) or before (b or i) posname. Otherwise new files are placed at the end
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Quickly append the named files to the end of the archive file. Optional positioning characters are invalid. The command does not check whether the added members are already in the archive. Useful only to avoid quadratic behavior when creating a large archive piece-by-piece
D{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print a table of contents of the archive file. If no names are given, all files in the archive are tabled. If names are given, only those files are tabled
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\f0\b0\i0\ulnone\ql\fs24\fi0\li0\gray0\fc0\cf0\up0\dn0 Print the named files in the archive
b{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Move the named files to the end of the archive. If a positioning character is present, then the posname argument must be present and, as in r, specifies where the files are to be moved
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Extract the named files. If no names are given, all files in the archive are extracted. In neither case does x alter the archive file. Normally the `last-modified' date of each extracted file is the date when it is extracted. However, if o is used, the `last- modified' date is reset to the date recorded in the archive
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Verbose. Under the verbose option, ar gives a file-by-file description of the making of a new archive file from the old archive and the constituent files. When used with t, it gives a long listing of all information about the files. When used with p, it precedes each file with a name
8{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Create. Normally ar will create afile when it needs to. The create option suppresses the normal message that is produced when afile is created
*{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Local. Normally ar places its temporary files in the directory /tmp. This option causes them to be placed in the local directory
CommandArgument
afile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The archive file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The names of constituent files within the archive file
7NeXT, GNU based, assemblers producing Mach object files
Y{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b\i0\ulnone\fs24\fc0\cf0 as
\b0 translates assembly code in the named files object code (reads from stdin if no files are specified). All undefined symbols in the assembly are treated as global. The output of the assembly is left in the file a.out by default.\
The program /bin/as is a driver that executes assemblers for specific target architectures. If no target architecture is specified it defaults to the architecture of the host it is running on.
[13@]
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The name argument after -o is used as the name of the
\b as
\b0 output file, instead of a.out
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\f0\b0\i0\ulnone\ql\fs24\fi0\li0\gray0\fc0\cf0\up0\dn0 The name of the output file
-arch
@{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies to the target architecture, arch_type, of the assembler to be executed. The target assemblers for each architecture are in /lib/arch_type/as
arch_type
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The architecture type
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Use stdin for the assembly source input
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Fast, no need for the ``app'' (assembler) preprocessor. The assembler preprocessor can also be turned off by starting the assembly file with "#NO_APP\\n". This is intended for use by compilers which produce assembly code in a strict "clean" format that specifies exactly where whitespace can go. The app preprocessor needs to be run on hand written assembly files and or file that have been preprocessed by the 'C' preprocessor ``cpp''. This typicly is needed when assembler files are assembled through the use of the cc(1) command that automaticly runs the 'C' pre-processor on assembly source files. The assembler preprocessor function is to strips out excess spaces, turns single-quoted characters into a decimal constant, and turn # <number> <filename> <level> into a .line <number>;.file <filename> pairs. When the assembler preprocessor has been turned off via a "#NO_APP\\n" at the start of a file it can be turned on an off with pairs of "#APP\\n" and "#NO_APP\\n" at the beginning of lines. This is used by the compiler to wrap assembly statements produces from asm() statements
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produces a warning when the statment ``.word symbol1symbol2+offset'' does not fit in a 16 bit word (only applicable on the 68000 processor where .word is 16 bits and addresses are 16 bits). Not applicable on NeXT machines
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce debugging information for the symbolic debugger gdb(1) so the the assembly source can be debugged symbolicly. For include files, included via the 'C' pre-processor's #include or the directive .include, that produce instructions in the (__TEXT,__text) section the include file must be included while a .text directive is in effect (that is a .text before the include) and end with the a .text directive in effect (at the end of the include file). Or otherwise the debugger will get confused when in that assembly file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the version the the assembler (both the NeXT version and the GNU version that it is based on)
[{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Add the directory dir to the list of directories to search for files included with the .include directive. The default place to search is the current directory then /usr/include
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The directory to add
K{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Save defined labels beginning with an 'L', which are normally discarded to save space in the resultant symbol table. The compiler generates such temporary labels
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 For offsets off of an address register that refers to an undefined symbol, as in a6@(foo) where foo is not defined in the assembly file, make the offset and the relocation entry width 32 bits rather than 16 bits (for the MC68000 processor family only)
-mc68000
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Generate branches that the mc68000 and mc68010 can use (that don't use 32 bit pc-relative jumps and branches since the are not implemented on these two processors). Not applicable on NeXT machines (for the MC68000 processor family only)
-mc68010
-mc68020
#{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Generate branches that use 32 bit pc-relative displacements. This is the default. (For the MC68000 processor family only)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) containing source assembly code
\b0 is a program that processes source program statements written in DSP56000 assembly language, translating these source statements into object programs compatible with other DSP56000 software products.\
files is a list of operating system compatible filenames (including optional pathnames) separated by blanks. If no extension is supplied for a given file, the assembler will automatically append .asm to the filename. If no path is specified for a given file, the assembler will look for that file in the current directory. The list of files will be processed sequentially in the order given and all files will be used to generate the output listing and object file.
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Indicates that the assembler should operate in absolute mode, creating a load (.lod) file if the -B option is given. By default the assembler produces a link (.lnk) file which is subsequently processed by the DSP56000 linker.
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This option specifies that an object file is to be created for assembler output. objfil can be any legal operating system filename, including an optional pathname. Note that there can be no intervening spaces between the -B and the optional filename.\
If a path is not specified, the file will be created in the current directory. If no filename is specified, the assembler will use the basename (filename without extension) of the first filename encountered in the source input file list. The resulting output file will have an extension of .lnk unless the -A option is given, in which case the file will have a .lod extension. If the -B option is not specified, then the assembler will not generate an object file. The -B option should be specified only once
objfil
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The object file for assembler output
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This is equivalent to a source statement of the form:\
DEFINE <symbol> <string>\
The -D and symbol should not be separated by a blank. string should be enclosed in quotes and preceded by a blank. string must be enclosed in double quotes if it contains any embedded blanks. The -D<symbol> <string> sequence can be repeated as often as desired
symbol
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The symbol to be defined
string
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The string value to define the symbol as
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 When the assembler encounters include files, the current directory (or the directory specified in the INCLUDE directive) is first searched for the file. If it is not found and the -I option is specified, the assembler prefixes the filename (and optional pathname) specified in the INCLUDE directive with ipath and searches the newly formed directory pathname for the file. The -I and ipath should not be separated by a blank. The directories will be searched in the reverse order specified on the command line
ipath
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The path for the INCLUDE directive
b{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This option specifies that a listing file is to be created for assembler output. lstfil can be any legal operating system filename, including an optional pathname. Note that there can be no intervening spaces between the -L and the optional filename.\
If a path is not specified, the file will be created in the current directory. If no filename is specified, the assembler will use the basename (filename without extension) of the first filename encountered in the source input file list. The resulting output file will have an extension of .lst. If the -L option is not specified, then the assembler will route listing output to the standard output. The -L option should be specified only once
lstfil
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The listing file to be created
{{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This is equivalent to a source statement of the form:\
MACLIB <mpath>\
The -M and mpath should not be separated by a blank. The directories will be searched in the reverse order specified on the command line
mpath
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The path for MACLIB
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The -O and opt should not be separated by a blank. opt can be any of the options that are available with the assembler OPT directive. If multiple options are specified, they must be separated by commas. The -O<opt> sequence can be repeated for as many options as desired
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The options for the OPT directive
files
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The 56000 assembler source files
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b\i0\ulnone\fs24\fc0\cf0 atom
\b0 converts the specified 4.3BSD a.out format object file to a Mach-O (Mach object) format file. Only ZMAGIC and OMAGIC a.out formats can be converted. ZMAGIC formats are converted to the Mach-O demand paged executable file type (MH_EXECUTE). OMAGIC formats are converted to the Mach-O relocatable file type (MH_OBJECT). The conversion involves adding a Mach-O header and load commands to the file, changing the types of symbol table entries, changing the symbolnum of local relocation entries, and converting symbol segments.
-segcreate
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Create a section, sect, in the segment, seg, that contains the contents of file. The resulting section size is rounded to a multiple of 4 bytes and the resulting segment is rounded to a multiple of the page size (8192 bytes). More than one section can be created in the same segment. This is the same as the ld(1) -segcreate option
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment to create a section in
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The section to create
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The contents of this file will be placed in the section
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Create the Objective-C sections for relocatable object files (OMAGIC files). This has a known bug in converting the local relocation entries. If a local relocation entry's item to be relocated is a symbol's value plus an offset it can be converted to be relative to the wrong section if the value of the expression is not in the same section as the value of the symbol. This can't be fixed because object files lack the information of what symbol's value make up the expression. This is done correctly in the assembler when the file is assembled and a Mach-O file is created
&{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Copy the symsegs created by the obsolete -gg option of cc(1) into the output. Symsegs are obsolete, and this is not the default
a.out
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The standard Unix object file
Mach-O
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The Mach-O object file
\b0 is a program to automatically intercept bug reports, summarize them and store them in the appropriate sub directories of the mail directory specified on the command line or the (system dependent) default. It is designed to be compatible with the Rand MH mail system. Bugfiler is normally invoked by the mail delivery program through aliases(5) with a line such as the following in /etc/sendmail/aliases. bugs:"|bugfiler /usr/bugs/mail" It reads the message from the standard input or the named file, checks the format and returns mail acknowledging receipt or a message indicating the proper format. Valid reports are then summarized and filed in the appropriate folder; improperly formatted messages are filed in a folder named ``errors.'' Program maintainers can then log onto the system and check the summary file for bugs that pertain to them. Bug reports should be submitted in RFC822 format and aremust contain the following header lines to be properly indexed: Date: <date the report is received> From: <valid return address> Subject: <short summary of the problem> Index: <source directory>/<source file> <version> [Fix] In addition, the body of the message must contain a line which begins with ``Description:'' followed by zero or more lines describing the problem in detail and a line beginning with ``Repeat-By:'' followed by zero or more lines describing how to repeat the problem. If the keyword `Fix' is specified in the `Index' line, then there must also be a line beginning with ``Fix:'' followed by a diff of the old and new source files or a description of what was done to fix the problem. The `Index' line is the key to the filing mechanism. The source directory name must match one of the folder names in the mail directory. The message is then filed in this folder and a line appended to the summary file in the following format: <folder name>/<message number> <Index info> <Subject info> The bug report may also be redistributed according to the index. If the file maildir/.redist exists, it is examined for a line beginning with the index name followed with a tab. The remainder of this line contains a comma-separated list of mail addresses which should receive copies of bugs with this index. The list may be continued onto multiple lines by ending each but the last with a backslash (`\\').
mail_directory
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The mail directory to store the subdirectories containing bug reports
\b0 places a copy of the C program from the standard input on the standard output with spacing and indentation that displays the structure of the program.
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b\i0\ulnone\fs24\fc0\cf0 cc
\b0 is the GNU C compiler, which translates programs written in the C programming language into executable load modules, or into relocatable binary programs for subsequent loading with the ld(1) linker. The GNU C compiler uses a command syntax much like the UNIX C compiler. The cc program accepts options and file names as operands. Multiple single-letter options may not be grouped: `-dr' is very different from `-d -r'. When you invoke GNU CC, it normally does preprocessing, compilation, assembly and linking. File names which end in `.c' are taken as C source to be preprocessed and compiled; compiler output files plus any input files with names ending in `.s' are assembled; then the resulting object files, plus any other input files, are linked together to produce an executable. Command options allow you to stop this process at an intermediate stage. For example, the `-c' option says not to run the linker. Then the output consists of object files output by the assembler. Other command options are passed on to one stage. Some options control the preprocessor and others the compiler itself. GNU CC on the NeXT Computer has been substantially modified and extended by NeXT Computer, Inc. to support the use of Objective-C and Mach. For documentation, see the NeXT Developer's Library (accessible through the NeXT Developer target of the Digital Librarian).\
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\fc0\cf0 If you add segments to Mach-O files with the -segcreate flag, the contents of file-name go into the segment (the cc command also understands this set of flags). This will also work with atom, the "a.out to Mach-O" converter. These segments are mapped into the address space of the executable, and the contents can be read (and written) by the executable. Note that if you write it, it doesn't go back into the executable. It's just like initialized data (copy-on-write). It's intended to be used for things such as the icons and the archive.
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Place output in file file. This applies to whatever type of output is being produced; it could be an executable file, an object file, an assembler file, or preprocessed C code
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to put the output into
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Compile or assemble the source files, but don't link. Produce object files with names made by replacing ".c" or ".s" with ".o" at the end of the input file names. Do nothing at all to object files specified as input
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Compile into assembler code but don't assemble. The assembler output file name is made by replacing ".c" with ".s" at the end of the input file name. Do nothing at all to assembler source files or object files specified as input
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Run only the C preprocessor. Preprocess the C source files and direct the results to the standard output
{{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Compile verbosely. The compiler driver program prints the commands it executes as it runs the preprocessor, compiler proper, assembler, and linker. Some of these are directed to print their own version numbers
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Show timing information for each of the passes run by the cc command
${\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Compiler driver program tries prefix as a prefix for each program it tries to run. These programs are cpp, cc1, as, and ld
prefix
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The prefix for each program
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Tell the preprocessor not to discard comments. Used with the -E option
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Search the directory dir for header files
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The directory to search for header files
d{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Any directories specified with -I options before the -Ioption are searched only for the case of #include "file"; they aren't searched for #include <file>.\
If additional directories are specified with -I options after the -I-, these directories are searched for all #include directives. (Ordinarily all -I directories are used this way.)\
In addition, the -Ioption inhibits the use of the current directory as the first search directory for #include "file". Therefore, the current directory is searched only if it's requested explicitly with a -I. option. Specifying both -Iand -I. allows you to control precisely which directories are searched before the current one and which are searched after
-nostdinc
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Don't search the standard system directories for header files. Only the directories you have specified with -I options (and the current directory, if appropriate) are searched.\
Between -nostdinc and -I-, you can eliminate all directories from the search path except those you specify
S{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Tell the preprocessor to produce a rule suitable for make describing the dependencies of each source file. For each source file, the preprocessor produces one make rule whose target is the object file name for that source file and whose dependencies are all the files #included in it. This rule may be a single line or may be continued with backslash-newline if it's long. -M implies -E (that is, run only the C preprocessor)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This is similar to -M, but it turns on the Mach-style make-depend switch, which writes dependency information to file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to write dependency information to
x{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Like -M but the output mentions only the user-header files included with #include "file". System header files included with #include <file> are omitted. -MM implies -E (that is, run only the C preprocessor)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This is similar to -MM, but it uses the Mach-style make-depend switch, which writes dependency information to file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Define macro macro with definition definition (or an empty string if definition is not specified)
macro
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The macro to define
definition
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The macro's definition
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Support ANSI C trigraphs (the -ansi option also has this effect). Trigraphs are three-character sequences, all starting with ??, that are defined by ANSI C to stand for single characters (these sequences allow users to use the full range of C characters, even if their keyboards don't implement the full C character set). For example, ??/ stands for \\ so ??/n is a character constant for newline
-ansi
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Support all ANSI standard C programs. This turns off certain features of GNU C that are incompatible with ANSI C, and enables the infrequently used ANSI trigraph feature.\
The -ansi option doesn't cause non-ANSI programs to be rejected gratuitously. For that, -pedantic is required in addition to -ansi.\
The macro __STRICT_ANSI__ is predefined when the -ansi option is used. Some header files may notice this macro and refrain from declaring certain functions or defining certain macros that the ANSI standard doesn't call for; this is to avoid interfering with any programs that might use these names for other things
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Enforce strict BSD semantics. When the -bsd option is used, the macro __STRICT_BSD__ is predefined in the preprocessor. Some header files may notice this macro and refrain from declaring certain functions or defining certain macros
-traditional
({\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Attempt to support some aspects of traditional C compilers. Specifically:\
All extern declarations take effect globally even if they're written inside a function definition. This includes implicit declarations of functions.\
The keywords typeof, inline, signed, const, and volatile aren't recognized.\
Comparisons between pointers and integers are always allowed.\
Integer types unsigned short and unsigned char promote to unsigned int.\
Out-of-range floating-point literals aren't an error.\
In the preprocessor, comments convert to nothing at all, rather than to a space. This allows traditional token concatenation.\
In the preprocessor, single and double quotation marks are ignored when scanning macro definitions, so that macro arguments can be replaced even within a string or character constant. Quotation marks are also ignored when skipping text inside a failing conditional directive
-ObjC
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Compile a source file that contains Objective-C code (the file can have either a ".c" or ".m" extension)
#{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Optimize. Optimizing compilation takes somewhat more time, and a lot more memory for a large function.\
Without -O, the compiler's goal is to reduce the cost of compilation and to make debugging produce the expected results. With -O, the compiler tries to reduce code size and execution time. Some of the -f options described below turn specific kinds of optimization on or off
h{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce debugging information in GDB format. This option greatly reduces debugger startup time because the symbol table information is stored in the executable file.\
Unlike most other C compilers, GNU CC allows you to use -g with -O. The shortcuts taken by optimized code may occasionally produce surprising results: some variables you declared may not exist at all; flow of control may briefly move where you didn't expect it; some statements may not be executed because they compute constant results or their values were already at hand; some statements may execute in different places because they were moved out of loops. Nevertheless, this makes it possible to debug optimized output if necessary
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Inhibit all warning messages
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print extra warning messages if automatic variables are used without first being initialized.\
These warnings are possible only in optimizing compilation, because they require data flow information that's computed only when optimizing. They occur only for variables that are candidates for register allocation. Therefore, they don't occur for a variable that's declared volatile, or whose address is taken, or whose size is other than 1, 2, 4, or 8 bytes. Also, they don't occur for structures, unions, or arrays, even when they're in registers
-Wimplicit
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Warn whenever a function is implicitly declared
-Wreturn-type
[{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Warn whenever a function is defined with a return type that defaults to int. Also warn about any return statement with no return value in a function whose return type isn't void
-Wunused
+{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Warn whenever a local variable is unused aside from its declaration, and whenever a function is declared static but never defined
-Wall
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 All the above -W options combined
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Generate extra code to write profile information suitable for the analysis program gprof
a{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Search a standard list of directories for a library named library, which is actually a file named liblibrary.a. The linker uses this file as if it had been specified precisely by name
library
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The name of the library to look for
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Add directory dir to the list of directories to be searched for by -l
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The directory to be added to the search list
-nostdlib
7{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Don't use the standard system libraries and startup files when linking. Only the files you specify (plus gnulib) will be passed to the linker
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Make debugging dumps at times specified by options
options
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Dump after RTL generation
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Dump after first jump optimization
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Dump after last jump optimization
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Dump after CSE
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Dump after loop optimization
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Dump after flow analysis
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Dump after instruction combination
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Dump after local register allocation
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Dump after global register allocation
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print statistics on memory usage, at the end of the run
-pedantic
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Issue all the warnings demanded by strict ANSI standard C; reject all programs that use forbidden extensions.\
Valid ANSI standard C programs should compile properly with or without this option (though a rare few will require -ansi). However, without this option, certain GNU extensions and traditional C features are supported as well. With this option, they're rejected
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Don't store floating-point variables in registers. This prevents undesirable excess precision due to the floating registers keeping more precision than a double is supposed to have.\
For most programs, the excess precision does no harm, but a few programs rely on the precise definition of IEEE floating point. Use -ffloat-store for such programs
-fno-asm
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Don't recognize asm, inline, or typeof as a keyword. These words may then be used as identifiers
-fno-defer-pop
~{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Always pop the arguments to each function call as soon as that function returns. Normally the compiler (when optimizing) lets arguments accumulate on the stack for several function calls and pops them all at once
-fcombine-regs
I{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Allow the combine pass to combine an instruction that copies one register into another. This might or might not produce better code when used in addition to -O
-fforce-mem
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Force memory operands to be copied into registers before doing arithmetic on them. This may produce better code by making all memory references potential common subexpressions. When they aren't common subexpressions, instruction combination should eliminate the separate register-load
-fforce-addr
:{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Force memory address constants to be copied into registers before doing arithmetic on them. This may produce better code just as -fforce-mem may
-fomit-frame-pointer
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Don't keep the frame pointer in a register for functions that don't need one. This avoids the instructions to save, set up and restore frame pointers; it also makes an extra register available in many functions. It also makes debugging impossible
-finline-functions
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Integrate all simple functions into their callers. The compiler decides which functions are simple enough to be worth integrating.\
If all calls to a given function are integrated, and the function is declared static, then the function normally isn't produced as assembler code in its own right
-fkeep-inline-functions
B{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce a separate run-time callable version of the function. Do so even if all calls to the function are integrated and the function is declared static
-fwritable-strings
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Store string constants in the writable data segment and don't make them unique. This is for compatibility with old programs that assume they can write into string constants. Writing into string constants is a very bad idea; "constants" should be constant
-fno-function-cse
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Don't put function addresses in registers; make each instruction that calls a constant function contain the function's address explicitly.\
This option results in less efficient code, but some strange hacks that alter the assembler output may be confused by the optimizations performed when this option isn't used
-fvolatile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Consider all memory references through pointers to be volatile
-funsigned-char
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Let the type char default to unsigned, like unsigned charFr, rather than signed like signed char
-fsigned-char
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Let the type char default to signed, like signed char
-ffixed-reg
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Treat the register reg as a fixed register; generated code should never refer to it (except perhaps as a stack pointer, frame pointer or in some other fixed role).\
reg must be the name of a register. The register names accepted are machine-specific and are defined in the REGISTER_NAMES macro in the machine description macro file
-fcall-used-reg
D{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Treat the register reg as an allocatable register that's clobbered by function calls. It may be allocated for temporaries or variables that don't live across a call. Functions compiled this way won't save and restore the register reg.\
Use of this flag for a register that has a fixed pervasive role in the machine's execution model, such as the stack pointer or frame pointer, will produce disastrous results
-fcall-saved-reg
]{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Treat the register reg as an allocatable register saved by functions. It may be allocated even for temporaries or variables that live across a call. Functions compiled this way will save and restore the register reg if they use it.\
Never use this flag for a register that has a fixed pervasive role in the machine's execution model, such as the stack pointer or frame pointer, or in a register in which function values may be returned
-Mach
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Create a Mach-O executable format file. This is now the default format, rather than 4.3BSD a.out files
`{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Create a segment named segment and a section named section in that segment containing the contents of file. The known segments __TEXT and __DATA shouldn't be used as the segment name
segment
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment name to create
section
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The section to create the new segment in
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file contents to put in the newly created segment
-Ttext
5{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Set the start of the text segment to hex-number, which must be a multiple of 8192. The default starting address of the text segment is 8192
hex-number
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The hex number to start the text segment at
-Tdata
j{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Set the start of data to hex-number, which must be a multiple of 8192. The default starting address of the data segment is the last address of the text segment rounded up to a multiple of 8192
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The hex number to start the data segment at
-ident
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Create an ident command in the resulting Mach-O output file and place the string arguments of all -ident options in it
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The arguments to place
3{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Change original-symbol-name in the input ".o" files to alias-symbol-name in the final a.out. The original symbol name must not be defined
original-symbol-name
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The original symbol name
alias-symbol-name
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The alias symbol name
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Inhibit the searching of the default directories for -lx arguments
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The source file(s) to compile
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b\i0\ulnone\fs24\fc0\cf0 ci
\b0 stores new revisions into RCS files. Each file name ending in `,v' is taken to be an RCS file, all others are assumed to be working files containing new revisions. Ci deposits the contents of each working file into the corresponding RCS file. Pairs of RCS files and working files may be specified in 3 ways (see also the example section of co (1)).\
1) Both the RCS file and the working file are given. The RCS file name is of the form path1/workfile,v and the working file name is of the form path2/workfile, where path1/ and path2/ are (possibly different or empty) paths and workfile is a file name.\
2) Only the RCS file is given. Then the working file is assumed to be in the current directory and its name is derived from the name of the RCS file by removing path1/ and the suffix `,v'.\
3) Only the working file is given. Then the name of the RCS file is derived from the name of the working file by removing path2/ and appending the suffix `,v'. If the RCS file is omitted or specified without a path, then ci looks for the RCS file first in the directory ./RCS and then in the current directory. For ci to work, the caller's login must be on the access list, except if the access list is empty or the caller is the superuser or the owner of the file. To append a new revision to an existing branch, the tip revision on that branch must be locked by the caller. Otherwise, only a new branch can be created. This restriction is not enforced for the owner of the file, unless locking is set to strict (see rcs (1)). A lock held by someone else may be broken with the rcs command.
[11@]
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Assigns the revision number rev to the checked-in revision, releases the corresponding lock, and deletes the working file. This is also the default.\
If rev is omitted, ci derives the new revision number from the caller's last lock. If the caller has locked the tip revision of a branch, the new revision is appended to that branch. The new revision number is obtained by incrementing the tip revision number. If the caller locked a non-tip revision, a new branch is started at that revision by incrementing the highest branch number at that revision. The default initial branch and level numbers are 1. If the caller holds no lock, but he is the owner of the file and locking is not set to strict, then the revision is appended to the trunk.\
If rev indicates a revision number, it must be higher than the latest one on the branch to which rev belongs, or must start a new branch.\
If rev indicates a branch instead of a revision, the new revision is appended to that branch. The level number is obtained by incrementing the tip revision number of that branch. If rev indicates a non-existing branch, that branch is created with the initial revision numbered rev.1.\
Exception: On the trunk, revisions can be appended to the end, but not inserted
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The revision number
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Forces a deposit; the new revision is deposited even it is not different from the preceding one
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Searches the working file for keyword values to determine its revision number, creation date, author, and state (see co (1)), and assigns these values to the deposited revision, rather than computing them locally. A revision number given by a command option overrides the number in the working file. This option is useful for software distribution. A revision that is sent to several sites should be checked in with the -k option at these sites to preserve its original number, date, author, and state
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Works like -r, except it performs an additional co -l for the deposited revision. Thus, the deposited revision is immediately checked out again and locked. This is useful for saving a revision although one wants to continue editing it after the checkin
H{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Works like -l, except that the deposited revision is not locked. This is useful if one wants to process (e.g., compile) the revision immediately after checkin
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Aborts the deposit, if -q is omitted, then it asks whether it should abort the dposit or not
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Uses the string msg as the log message for all revisions checked in
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\f0\b0\i0\ulnone\ql\fs24\fi0\li0\gray0\fc0\cf0\up0\dn0 The log message for all revisions checked in
<{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Assigns the symbolic name
name to the number of the checked-in revision. Ci prints an error message if name is already assigned to another number
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The name to be assigned to the number of the checked-in revision
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Same as -n, except that it overrides a previous assignment of name
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Sets the state of the checked-in revision to the identifier state. The default is Exp
state
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The state of the checked in revision
G{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Writes descriptive text into the RCS file (deletes the existing text). If txtfile is omitted, ci prompts the user for text supplied from the std. input, terminated with a line containing a single `.' or control-D. Otherwise, the descriptive text is copied from the file txtfile. During initialization, descriptive text is requested even if -t is not given. The prompt is suppressed if std. input is not a terminal
txtfile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to write the descriptive text into
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to check in
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b\i0\ulnone\fs24\fc0\cf0 co
\b0 retrieves revisions from RCS files. Each file name ending in `,v' is taken to be an RCS file. All other files are assumed to be working files. Co retrieves a revision from each RCS file and stores it into the corresponding working file. Pairs of RCS files and working files may be specified in 3 ways (see also the example section).\
1) Both the RCS file and the working file are given. The RCS file name is of the form path1/workfile,v and the working file name is of the form path2/workfile, where path1/ and path2/ are (possibly different or empty) paths and workfile is a file name.\
2) Only the RCS file is given. Then the working file is created in the current directory and its name is derived from the name of the RCS file by removing path1/ and the suffix `,v'.\
3) Only the working file is given. Then the name of the RCS file is derived from the name of the working file by removing path2/ and appending the suffix `,v'.\
If the RCS file is omitted or specified without a path, then co looks for the RCS file first in the directory ./RCS and then in the current directory.\
Revisions of an RCS file may be checked out locked or unlocked. Locking a revision prevents overlapping updates. A revision checked out for reading or processing (e.g., compiling) need not be locked. A revision checked out for editing and later checkin must normally be locked. Locking a revision currently locked by another user fails. (A lock may be broken with the rcs (1) command.) Co with locking requires the caller to be on the access list of the RCS file, unless he is the owner of the file or the superuser, or the access list is empty. Co without locking is not subject to accesslist restrictions.\
A revision is selected by number, checkin date/time, author, or state. If none of these options are specified, the latest revision on the trunk is retrieved. When the options are applied in combination, the latest revision that satisfies all of them is retrieved. The options for date/time, author, and state retrieve a revision on the selected branch. The selected branch is either derived from the revision number (if given), or is the highest branch on the trunk. A revision number may be attached to one of the options -l, -p, -q, or -r.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Locks the checked out revision for the caller. If omitted, the checked out revision is not locked. See option -r for handling of the revision number rev
6{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints the retrieved revision on the std. output rather than storing it in the working file. This option is useful when co is part of a pipe
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Quiet mode; diagnostics are not printed
9{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Retrieves the latest revision on the selected branch whose checkin date/time is less than or equal to date. The date and time may be given in free format and are converted to local time. Examples of formats for date: 22-April-1982, 17:20-CDT, 2:25 AM, Dec. 29, 1983, Tue-PDT, 1981, 4pm Jul 21 (free format), Fri, April 16 15:52:25 EST 1982 (output of ctime). Most fields in the date and time may be defaulted. Co determines the defaults in the order year, month, day, hour, minute, and second (most to least significant). At least one of these fields must be provided. For omitted fields that are of higher significance than the highest provided field, the current values are assumed. For all other omitted fields, the lowest possible values are assumed. For example, the date "20, 10:30" defaults to 10:30:00 of the 20th of the current month and current year. The date/time must be quoted if it contains spaces
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The date to compare the revision's date against
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Retrieves the latest revision whose number is less than or equal to rev. If rev indicates a branch rather than a revision, the latest revision on that branch is retrieved. Rev is composed of one or more numeric or symbolic fields separated by `.'. The numeric equivalent of a symbolic field is specified with the -n option of the commands ci and rcs
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Retrieves the latest revision on the selected branch whose state is set to state
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The state to match against
V{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Retrieves the latest revision on the selected branch which was checked in by the user with login name login. If the argument login is omitted, the caller's login is assumed
login
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The login name to compare against
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Generates a new revision which is the join of the revisions on joinlist. Joinlist is a commaseparated list of pairs of the form rev2:rev3, where rev2 and rev3 are (symbolic or numeric) revision numbers. For the initial such pair, rev1 denotes the revision selected by the options -l, ..., -w. For all other pairs, rev1 denotes the revision generated by the previous pair. (Thus, the output of one join becomes the input to the next.) For each pair, co joins revisions rev1 and rev3 with respect to rev2. This means that all changes that transform rev2 into rev1 are applied to a copy of rev3. This is particularly useful if rev1 and rev3 are the ends of two branches that have rev2 as a common ancestor. If rev1 < rev2 < rev3 on the same branch, joining generates a new revision which is like rev3, but with all changes that lead from rev1 to rev2 undone. If changes from rev2 to rev1 overlap with changes from rev2 to rev3, co prints a warning and includes the overlapping sections, delimited by the lines <<<<<<< rev1, =======, and >>>>>>> rev3. For the initial pair, rev2 may be omitted. The default is the common ancestor. If any of the arguments indicate branches, the latest revisions on those branches are assumed. If the option -l is present, the initial rev1 is locked
Joinlist
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The list of revisions to make a join from
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to check out
\b0 creates a file called tags from the specified C, Objective-C, Yacc, Lex, Pascal, Fortran or Lisp source files. The tags file is a sorted index giving the locations of object declarations in files, as well as type information, cross references, etc. Objects include functions, procedures, global variables, macros, structs, typedefs, yacc tokens, methods, and classes. This information is used by ptags(1), and by the editors ex, vi, and fred(1) to quickly find object declarations and trace calling relationships. Each line in the tags file contains the object name, the file in which it is declared, a location (regular expression or line number), the type of the object (function, macro, typedef, struct, global, method, class, null), the length of the object (in lines), a caller reference list, and a callee reference list. Fields are separated by whitespace (except for the address and the rest of the line, which are separated by "; to fool vi(1)), and caller/callee lists are enclosed in braces. Files whose names end in .c or .h are assumed to be C source files; .m are assumed to be Objective-C source files; .l implies Lisp or Lex source; .y implies Yacc source; Others are scanned for Pascal or Fortran definitions; if none are found, C is assumed. Tags for main are treated specially in C programs: the tag is named Mfile, making ctags useful in directories with more than one main program. The first main function found is also tagged simply as ``main.'' Multiple links to a file are only indexed once.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Add references to the tags file (don't overwrite it)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Use backward searching patterns (?...?, instead of the forward /.../ default)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Create index entries for duplicate declarations (duplicates are ignored by default, except for Objective C)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Read input file names from infile
infile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to read input file names from
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppress tags for global variables
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppress tags for parameterless #define macros
.{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Limit the length of callee/caller reference lists to maxrefs (60 by default). Longer lists are truncated, with (etc) ending the list
maxrefs
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The limit for callee/caller reference lists
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Write tags to the file output (tags by default)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppress generation of caller/callee reference lists, and printing of object lengths
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppress tags for structs, unions, and enums
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppress tags for typedefs (Note: the sense of this is reversed in older versions of ctags)
M{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Update the specified files; that is, delete all old references in the tags file and append any new ones. (Note: simply rebuilding the tags file is usually faster.)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Write an index for vgrind(1) on the standard output. This listing contains object name, file name, and page number (64 line pages are assumed). Output is sorted lexicographically, so sort -f may be useful: ctags -v files | sort -f > index vgrind -x index This option implies -g, -m, -r, -s, -t, and -x
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print a list containing object names, the line number and file in which each is defined, and the text of that line on the standard output. This is a simple index fit for humans. This option implies -g, -m, -r, -s, and -t
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to generate tags for
\b0 uses the tags file produced by ctags(1) to print a display of the calling hierarchy in C programs. This can be used as a ``road map'' for browsing large or unfamiliar software systems. If no functions are given, all uncalled functions in the tags file (like main) are used. Options provide control over formatting.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Put each symbol on a new line, instead of the compact form above
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppress printing of functions
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppress printing of globals
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppress printing of macros
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppress printing of structs
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppress printing of typedefs
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Quiet don't print the type labels (#, ())
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Wrap lines greater than columns wide (default=80)
columns
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The number of columns
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Use indent as the indentation string (three spaces is the default)
indent
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The indentation string
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Limit the depth of the tree to level
level
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The level to limit the depth of the tree to
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Set the path of tag files searched to tagpath (the default is $TAGS, or failing that, tags)
tagpath
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The path of tag files
functions
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The functions to produce a tree for
\b0 analyzes and optionally disperses the diagnostic error messages produced by a number of compilers and language processors to the source file and line where the errors occurred. It can replace the painful, traditional methods of scribbling abbreviations of errors on paper, and permits error messages and source code to be viewed simultaneously without machinations of multiple windows in a screen editor.\
Error looks at the error messages, either from the specified file name or from the standard input, and attempts to determine which language processor produced each error message, determines the source file and line number to which the error message refers, determines if the error message is to be ignored or not, and inserts the (possibly slightly modified) error message into the source file as a comment on the line preceding to which the line the error message refers. Error messages which can't be categorized by language processor or content are not inserted into any file, but are sent to the standard output. Error touches source files only after all input has been read. By specifying the -q query option, the user is asked to confirm any potentially dangerous (such as touching a file) or verbose action. Otherwise error proceeds on its merry business. If the -t touch option and associated suffix list is given, error will restrict itself to touch only those files with suffices in the suffix list. Error also can be asked (by specifying -v) to invoke vi(1) on the files in which error messages were inserted; this obviates the need to remember the names of the files with errors.\
Error is intended to be run with its standard input connected via a pipe to the error message source. Some language processors put error messages on their standard error file; others put their messages on the standard output. Hence, both error sources should be piped together into error. For example, when using the csh syntax, make -s lint |& error -q -v will analyze all the error messages produced by whatever programs make runs when making lint. Error knows about the error messages produced by: make, cc, cpp, as, ld, lint, pi, pc, and f77. Error knows a standard format for error messages produced by the language processors, so is sensitive to changes in these formats. For all languages except Pascal, error messages are restricted to be on one line. Some error messages refer to more than one line in more than one files; error will duplicate the error message and insert it at all of the places referenced.\
Error will do one of six things with error messages.\
synchronize Some language processors produce short errors describing which file it is processing. Error uses these to determine the file name for languages that don't include the file name in each error message. These synchronization messages are consumed entirely by error.\
discard Error messages from lint that refer to one of the two lint libraries, /usr/lib/llib-lc and /usr/lib/llib-port are discarded, to prevent accidently touching these libraries. Again, these error messages are consumed entirely by error.\
nullify Error messages from lint can be nullified if they refer to a specific function, which is known to generate diagnostics which are not interesting. Nullified error messages are not inserted into the source file, but are written to the standard output. The names of functions to ignore are taken from either the file named .errorrc in the users's home directory, or from the file named by the -I option. If the file does not exist, no error messages are nullified. If the file does exist, there must be one function name per line.\
not file specific Error messages that can't be intuited are grouped together, and written to the standard output before any files are touched. They will not be inserted into any source file.\
file specific Error message that refer to a specific file, but to no specific line, are written to the standard output when that file is touched.\
true errors Error messages that can be intuited are candidates for insertion into the file to which they refer.\
Only true error messages are candidates for inserting into the file they refer to. Other error messages are consumed entirely by error or are written to the standard output. Error inserts the error messages into the source file on the line preceding the line the language processor found in error. Each error message is turned into a one line comment for the language, and is internally flagged with the string ``###'' at the beginning of the error, and ``%%%'' at the end of the error. This makes pattern searching for errors easier with an editor, and allows the messages to be easily removed. In addition, each error message contains the source line number for the line the message refers to. A reasonably formatted source program can be recompiled with the error messages still in it, without having the error messages themselves cause future errors. For poorly formatted source programs in free format languages, such as C or Pascal, it is possible to insert a comment into another comment, which can wreak havoc with a future compilation. To avoid this, programs with comments and source on the same line should be formatted so that language statements appear before comments.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Do not touch any files; all error messages are sent to the standard output
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The user is queried whether s/he wants to touch the file. A ``y'' or ``n'' to the question is necessary to continue. Absence of the -q option implies that all referenced files (except those referring to discarded error messages) are to be touched
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 After all files have been touched, overlay the visual editor vi with it set up to edit all files touched, and positioned in the first touched file at the first error. If vi can't be found, try ex or ed from standard places
Y{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Take the following argument as a suffix list. Files whose suffixes do not appear in the suffix list are not touched. The suffix list is dot separated, and ``*'' wildcards work
suffixlist
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The suffix list
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print out statistics regarding the error categorization. Not too useful
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Ignore a certain file when executing error
ignorefile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to ignore
\b0 is a source-level symbolic debugger for C programs, created by Richard M. Stallman for the GNU Project and distributed by the Free Software Foundation. gdb has something of the flavor of dbx, but has more features and power. GDB is invoked with the shell command gdb. Once started, it reads commands from the terminal until you quit by giving the quit command. name is the name of your executable program, and core, if specified, is the name of the core dump file to be examined. gdb on the NeXT Computer has been substantially modified and extended by NeXT Computer, Inc. to support the use of Objective-C and Mach. For complete documentation, see the NeXT Developer's Library (accessible through the NeXT Developer target of the Digital Librarian).
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Read symbol table from file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to read the symbol table from
"{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Use file as the executable file to execute when appropriate, and for examining pure data in conjunction with a core dump
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The executable file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Read symbol table from file and use it as the executable file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file containing the symbol table to use as the executable
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Use file as a core dump file to examine
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to use as a core dump file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Execute GDB commands from file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to execute GDB commands from
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Add directory to the path to search for source files
directory
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The directory to add to the search path for source files
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The name of the executable program
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The name of the core dump file to be examined
\b0 produces an execution profile of C, Pascal, or Fortran77 programs. The effect of called routines is incorporated in the profile of each caller. The profile data is taken from the call graph profile file (gmon.out default) which is created by programs which are compiled with the -pg option of cc, pc, and f77. That option also links in versions of the library routines which are compiled for profiling. The symbol table in the named object file (a.out default) is read and correlated with the call graph profile file. If more than one profile file is specified, the gprof output shows the sum of the profile information in the given profile files. First, a flat profile is given. This listing gives the total execution times and call counts for each of the functions in the program, sorted by decreasing time. Next, these times are propagated along the edges of the call graph. Cycles are discovered, and calls into a cycle are made to share the time of the cycle. A second listing shows the functions sorted according to the time they represent including the time of their call graph descendents. Below each function entry is shown its (direct) call graph children, and how their times are propagated to this function. A similar display above the function shows how this function's time and the time of its descendents is propagated to its (direct) call graph parents. Cycles are also shown, with an entry for the cycle as a whole and a listing of the members of the cycle and their contributions to the time and call counts of the cycle.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppresses the printing of statically declared functions. If this option is given, all relevant information about the static function (e.g., time samples, calls to other functions, calls from other functions) belongs to the function loaded just before the static function in the a.out file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Supresses the printing of a description of each field in the profile
a{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The static call graph of the program is discovered by a heuristic which examines the text space of the object file. Static-only parents or children are indicated with call counts of 0
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppresses the printing of the graph profile entry for routine name and all its descendants (unless they have other ancestors that aren't suppressed). More than one -e option may be given. Only one name may be given with each -e option
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The routine name to suppress printing for
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Suppresses the printing of the graph profile entry for routine name (and its descendants) as -e, above, and also excludes the time spent in name (and its descendants) from the total and percentage time computations. (For example, -E mcount -E mcleanup is the default.)
U{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints the graph profile entry of only the specified routine name and its descendants. More than one -f option may be given. Only one name may be given with each -f option
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The routine name to print a graph for
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints the graph profile entry of only the routine name and its descendants (as -f, above) and also uses only the times of the printed routines in total time and percentage computations. More than one -F option may be given. Only one name may be given with each -F option. The -F option overrides the -E option
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 A profile file gmon.sum is produced which represents the sum of the profile information in all the specified profile files. This summary profile file may be given to subsequent executions of gprof (probably also with a -s) to accumulate profile data across several runs of an a.out file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produces two order files suitable as input to ld(1): gmon.order is an ordering based on a closest is best algorithm, callf.order is based on call frequency. The order files contain only those functions which were called or sampled (including spontaneous functions). For library functions to appear correctly in the order file, a whatsloaded file produced by ld(1) should exist in the working directory. Filenames in the order file will be missing for: files compiled without the -g option, assembly files, and stripped executables. This option does not work with executables that have already been scattered
g{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Displays routines which have zero usage (as indicated by call counts and accumulated time). This is useful in conjunction with the -c option for discovering which routines were never called
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The object file that the symbol table is taken from
gmon.out
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file the profile data is taken from
\b0 is an Objective-C program formatter. It reformats the C program in the input-file according to the switches. The switches that can be specified are described below.\
NOTE: If you only specify an input-file, the formatting is done `in-place'. That is, the formatted file is written back into input-file and a backup copy of input-file is written in the current directory. If input-file is named `/blah/blah/file', the backup file is named file.BAK.\
If output-file is specified, indent checks to make sure it is different from input-file.\
FURTHER DESCRIPTION You may set up your own `profile' of defaults to indent by creating a file called .indent.pro in either your login directory and/or the current directory and including whatever switches you like. Switches in `.indent.pro' in the current directory override those in your login directory (with the exception of -T type definitions, which just accumulate). If indent is run and a profile file exists, then it is read to set up the program's defaults. The switches should be separated by spaces, tabs or newlines. Switches on the command line, however, override profile switches.\
Comments\
`Box' comments. Indent assumes that any comment with a dash or star immediately after the start of comment (that is, `/*-' or `/**') is a comment surrounded by a box of stars. Each line of such a comment is left unchanged, except that its indentation may be adjusted to account for the change in indentation of the first line of the comment.\
Straight text.\
All other comments are treated as straight text. Indent fits as many words (separated by blanks, tabs, or newlines) on a line as possible. Blank lines break paragraphs.\
Comment indentation\
If a comment is on a line with code it is started in the `comment column', which is set by the -cn command line parameter. Otherwise, the comment is started at n indentation levels less than where code is currently being placed, where n is specified by the -dn command line parameter. If the code on a line extends past the comment column, the comment starts further to the right, and the right margin may be automatically extended in extreme cases.\
Preprocessor lines\
In general, indent leaves preprocessor lines alone. The only reformatting that it will do is to straighten up trailing comments. It leaves embedded comments alone. Conditional compilation (#ifdef...#endif) is recognized and indent attempts to correctly compensate for the syntactic peculiarities introduced.\
C syntax\
Indent understands a substantial amount about the syntax of C, but it has a `forgiving' parser. It attempts to cope with the usual sorts of incomplete and misformed syntax. In particular, the use of macros like: #define forever for(;;) is handled properly.
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 If -bad is specified, a blank line is forced after every block of declarations. Default: -nbad
-nbad
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 If -bad is specified, a blank line is forced after every block of declarations. Default: -nbad
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 If -bap is specified, a blank line is forced after every procedure body. Default: -nbap
-nbap
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 If -bbb is specified, a blank line is forced before every block comment. Default: -nbbb
-nbbb
'{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 If -bc is specified, then a newline is forced after each comma in a declaration. -nbc turns off this option. The default is -nbc
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifying -br (the default) makes them look like this: if (...) \{ code \}
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifying -bl lines up compound statements like this: if (...) code
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The column in which comments on code start. The default is 33
){\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The column in which comments on declarations start. The default is for these comments to start in the same column as those on code
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Enables the placement of comment delimiters on blank lines
-ncdb
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Disables the placement of comment delimiters on blank lines
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Enables (disables) forcing `else's to cuddle up to the immediately preceding `\}'. The default is -ce
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Disables forcing `else's to cuddle up to the immediately preceding `\}'. The default is -ce
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Sets the continuation indent to be n. Continuation lines will be indented that far from the beginning of the first line of the statement. Parenthesized expressions have extra indentation added to indicate the nesting, unless -lp is in effect. -ci defaults to the same value as -i
-clin
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Causes case labels to be indented n tab stops to the right of the containing switch statement. -cli0.5 causes case labels to be indented half a tab stop. The default is -cli0. (This is the only option that takes a fractional argument.)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Controls the placement of comments which are not to the right of code. Specifying -d1 means that such comments are placed one indentation level to the left of code. The default -d0 lines up these comments with the code. See the section on comment indentation below
){\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies the indentation, in character positions, from a declaration keyword to the following identifier. The default is -di16
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Left justifies declarations
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Indents declarations the same as code. The default is -ndj
>{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Enables special else-if processing. If enabled, ifs following elses will have the same indentation as the preceding if statement. The default is -ei
?{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Disables special else-if processing. If enabled, ifs following elses will have the same indentation as the preceding if statement. The default is -ei
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Enables the formatting of comments that start in column 1. Often, comments whose leading `/' is in column 1 have been carefully hand formatted by the programmer. In such cases, -nfc1 should be used. The default is -fc1
-nfc1
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Disables the formatting of comments that start in column 1. Often, comments whose leading `/' is in column 1 have been carefully hand formatted by the programmer. In such cases, -nfc1 should be used. The default is -fc1
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The number of spaces for one indentation level. The default is 8
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The number spaces for indentation
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Enables the indentation of parameter declarations from the left margin. The default is -ip
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Disables the indentation of parameter declarations from the left margin. The default is -ip
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Maximum length of an output line. The default is 78
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The length of an output line
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Maximum length of a line containing a comment
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The maximum length
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Lines up code surrounded by parenthesis in continuation lines. If a line has a left paren which is not closed on that line, then continuation lines will be lined up to start at the character position just after the left paren
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Lines up code surrounded by parenthesis in continuation lines. If a line has a left paren which is not closed on that line, then continuation will be lined up to start at the character position just after the left paren
D{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Old style assignment operators (`=-', `=*', and so on) are considered to be tokens, and are converted to the newer form (`-=', `*='). The default is -nosa
-nosa
L{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Old style assignment operators (`=-', `=*', and so on) are not considered to be tokens, and are not converted to the newer form (`-=', `*='). The default is -nosa
-npro
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Causes the profile files, `./.indent.pro' and `~/.indent.pro', to be ignored
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 A
ll procedure calls will have a space inserted between the name and the `('. The default is -npcs
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 All procedure calls will not have a space inserted between the name and the `('. The default is -npcs
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The pointer following operator `->' will be surrounded by spaces on either side. The default is -nps
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The pointer following operator `->' will not be surrounded by spaces on either side. The default is -nps
3{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The names of procedures being defined are placed in column 1 their types, if any, will be left on the previous lines. The default is -psl
-npsl
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The names of procedures being defined are not placed in column 1. The default is -psl
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Enables the placement of asterisks (`*'s) at the left edge of all comments. The default is -sc
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Disables the placement of asterisks (`*'s) at the left edge of all comments. The default is -sc
!{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Indent will swallow optional blank lines. You can use this to get rid of blank lines after declarations. Default: -nsob
-nsob
%{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Indent will not swallow optional blank lines. You can use this to get rid of blank lines after declarations. Default: -nsob
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Causes indent to take its input from stdin, and put its output to stdout
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Adds typename to the list of type keywords. Names accumulate: -T can be specified more than once. You need to specify all the typenames that appear in your program that are defined by typedefs nothing will be harmed if you miss a few, but the program won't be formatted as nicely as it should. This sounds like a painful thing to have to do, but it's really a symptom of a problem in C: typedef causes a syntactic change in the language and indent can't find all typedefs
typename
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The typename to add to the list of type keywords
-troff
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Causes indent to format the program for processing by troff. It will produce a fancy listing in much the same spirit as vgrind. If the output file is not specified, the default is standard output, rather than formatting in place
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f1\b0\i0\ulnone\fs24\fc0\cf0 Specifies the width of tab stops. The default value is 8, which is equivalent to eight spaces.
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The width of a tab stop
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Turns on `verbose' mode. When in verbose mode, indent reports when it splits one line of input into two or more lines of output, and gives some size statistics at completion. The default is -nv
l{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Turns off `verbose' mode. When in verbose mode, indent reports when it splits one line of input into two or more lines of output, and gives some size statistics at completion. The default is -nv
input-file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The input file to be indented and formatted
output-file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The output file containing the indented and formatted code
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Binary is moved (or copied if -c is specified) to destination. If destination already exists, it is removed before binary is moved. If the destination is a directory then binary is moved into the destination directory with its original file-name.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 May be used to specify a different group
group
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The different group specified
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The binary is stripped after being installed
binary
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The binary to copy to the destination
destination
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The destination for the binary
\b0 combines several Mach-O (Mach object) files into one by combining like sections in like segments from all the object files, resolves external references, and searches libraries. In the simplest case several object files are given, and ld combines them, producing an object file which can be either executed or become the input for a further ld run. (In the latter case, the -r option must be given to preserve the relocation information.) The output of ld is left on a.out. This file is made executable only if no errors occurred during the link editing and there are no undefined symbols.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The name argument after -o is used as the name of the ld output file, instead of a.out
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The name of the output file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This option is an abbreviation for the library name `libx.a', where x is a string. Ld searches for libraries first in any directories specified with -L options, then in the standard directories `/lib', `/usr/lib', and `/usr/local/lib'. A library is searched when its name is encountered, so the placement of a -l is significant. The string x can be of the form x.o and then that file is searched for in the same places but does not have a lib or a .a added before and after the string
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The library name
<{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Add dir to the list of directories in which libraries are searched for. Directories specified with -L are searched before the standard directories
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The directory to be added
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Do not search the standard directories when searching for libraries
E{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Cause the correct objective-C semantics when loading a library. This causes all library members that define an objective-C class or a category to be loaded
-all_load
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Cause all library members to be loaded
-execute
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce a Mach-O demand paged executable format file. The headers are placed in the first segment and all segments are padded to the segment alignment. This has a file type of MH_EXECUTE. This is the default. If no segment address is specified at address zero then a segment with no protection (no read, write, or execute permission) is created at address zero with the size the segment alignment. This segment is named ``__PAGEZERO''. This option was previously -Mach and will continue to be recognized
-object
K{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce a Mach-O file in the the relocatable object file format that is intended for execution. This differs from using the -r option in that it defines common symbols, does not allow undefined symbols and does not preserve relocation entries. This has a file type of MH_OBJECT. In this format all sections are placed in one unnamed segment with all protections (read, write, execute) allowed on that segment. This is intended for extremely small programs that would otherwise be large due to segment padding. In this format, and all non-MH_EXECUTE formats, the link editor defined symbol ``__mh_execute_header'' is not defined since the headers are not part of the segment
-preload
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce a Mach-O preloaded executable format file. The headers are not placed in any segment. All sections are placed in there proper segments and they are padded to the segment alignment. This has a file type of MH_PRELOAD. This option was previously -p and will continue to be recognized
-fvmlib
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce a Mach-O fixed VM shared library format file. The headers are placed in the first segment but the first section in that segment will be placed on the next segment alignment boundary in that segment. All sections are placed in there proper segments and they are padded to the segment alignment. This has a file type of MH_FVMLIB
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Save the relocation information in the output file so that it can be the subject of another ld run. The resulting file type is a Mach-O relocatable file (MH_OBJECT) if not otherwise specified. This flag also prevents final definitions from being given to common symbols, and suppresses the `undefined symbol' diagnostics
'{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Force definition of common storage even if the -r flag is present. This also forces link editor defined symbols to be defined
-segalign
E{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies the segment alignment. value is a hexadecimal number that must be an integral power of 2. The default is the target pagesize (2000 hex currently)
value
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment alignment value
-seg1addr
D{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies the starting address of the first segment in the output file. Where addr is a hexadecimal number and must be a multiple of the segment alignment
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The starting address of the first segment
-segaddr
C{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies the starting address of the named segment, name, to be addr. Where addr is a hexadecimal number and must be a multiple of the segment alignment
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment to set the starting address for
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The starting address of the named segment
-segprot
Z{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies the maximum and initial virtual memory protection of the named segment, name, to be max and init respectfully. The values for max and init are any combination of the characters `r' (for read), `w' (for write), `x' (for execute) and '-' (no access). The default is `rwx' for the maximum and initial protection for all segments except for the ``__TEXT'' segment, if it exists, who's initial protection is `rx' (not writable)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment to set the maximum and initial virtual memory protection for
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The maximum protection of the named segment
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The initial protection of the named segment
-seglinkedit
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Create the link edit segment, named ``__LINKEDIT'' (this is the default). This segment contains all the link edit information (relocation information, symbol table, string table, etc) in the object file. If the segment protection for this segment is not specified then the initial protection is not writable. This can only be specified for the MH_EXECUTE and MH_FVMLIB output file types. To get at the contents of this section the mach header and load commands must be parsed from the link editor defined symbol `__mh_execute_header' (see Mach-O(5))
-noseglinkedit
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Don't create the link edit segment (see -seglinkedit
-sectcreate
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The section named, sectname, in the segment named, segname, is created from the contents of the file, file. This section name can not be the same as a section name in an input object file in the same segment. This option was previously -segcreate and will continue to be recognized
segname
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment name to create a section in
sectname
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The name of the section to create
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to create the section from
-sectalign
L{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The section named, sectname, in the segment named, segname, will have it's alignment set to value, where value is a hexadecimal number that must be an integral power of 2. This can be used to set the alignment of a section created from a file or to increase the alignment of a section from an object file or to set the maximum alignment of the (__DATA,__common) section where common symbols are defined by the link editor. Setting the alignment of a literal section causes the individual literals to be aligned on that boundary. The default section alignment if not specified by a section header in an object file or on the command line will be 10 (hex) or 16 byte alignment
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment containing the section to be aligned
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The section to be aligned
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The value to set the alignment to
-sectorder
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The section named, sectname, in the segment named, segname, will have the input file's sections broken up into blocks associated with symbols in the section and then the output section will be created by ordering the blocks as specified by the lines in the orderfile. These blocks are aligned to the output file's section alignment for this section. Any section can be ordered in the output file. The orderfile for non-literal sections contain lines of object name and symbol name pairs (exactly one per line separated by a single ':'). If the object file is in an archive then the archive name followed by a single ':' must precede the object file name. The object file names and archive names should be exactly the names as seen by the link editor, but if not the link editor attemps to match up the names the best it can. For non-literal sections sections the easiest way to generate an order file is with the ``-jonls segname sectname'' options to nm(1). The format of the orderfile for literal sections is specific for each type of literal section. For 'C' string literal sections the order file format is one literal 'C' string per line (with ANSI 'C' escape sequences allowed in the 'C' string). For 4 byte literal sections the order file format is one 32 bit hex number with a leading 0x per line with the rest of the line treated as a comment. For 8 byte literal sections the order file is two 32 bit hex numbers per line separated by white space each with a leading 0x, with the rest of the line treated as a comment. For literal pointer sections the format of the order file are lines representing the pointers one per line. A literal pointer is represented by the segment name and section name the literal it is pointing at is in and the literal. Each of these three are separated by a ':' with no extra white space. For all the literal sections each line in the the order file is simply entered into the literal section and will appear in the output file in the order of the order file. There is no check to see if the literal is in the loaded objects. For literal sections the easiest way to generate an order file is with the ``-X -v -s segname sectname'' options to otool(1). For detailed information see the ``Link Optimization'' section of the 2.0 release notes
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment containing the section to be ordered
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The section to be ordered
orderfile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file containing the ordering of the blocks
-sectorder_detail
w{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 When using the -sectorder option object file symbol name pairs found in the loaded objects not listed in the orderfile appear last in the output file's section ordered by object file (as they appear on the command line) and then by symbol in that object file ordered by increasing symbol value. By default the link editor prints a summary of number of symbol names in the loaded objects not in the orderfile and the number of symbol names listed in the orderfile not in the loaded objects if both values are not zero. To produce a detailed list of these symbols the -sectorder_detail flag can be specified. Object file symbol name pairs listed multiple times always generate a warning and the first occurrence is used
-sectobjectsymbols
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This causes the link editor to generate local symbols in the section named, sectname, in the segment named, segname. Each object file that has one of these sections will have a local symbol created with the name of the object file, or the member name of the archive. The value of the the symbol will be where the first address that object file's section was loaded at. The symbol has the type N_SECT and it's section number is the section number of the (segname,sectname) section in the output file. This symbol will placed in the symbol table just before all other local symbols for the object file. This is typicly used where the section is (__TEXT,__text) to help the debugger debug object files coming from old compilers or non-NeXT compilers
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment containing the section to generate local symbols for
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The section to generate local symbols for
-ysym
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Indicate each file in which sym appears, its type and whether the file defines or references it. This option is one argument not two like most of the other symbol related arguments. Many such options may be given to trace many symbols. The tracing of symbols is automaticly done for multiply defined symbols
){\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Only print a warning for multiply defined symbols and don't treat them as a hard error. The first symbol is used for linking and is the value of the symbol in the symbol table. The other symbols by the same name may be used in the resulting output file through local references. This can still produce a resulting output file that is in error. This flag's use is strongly discouraged
-whyload
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Indicate why each member of an archive is loaded. That is which currently undefined symbol is being resolved and requiring that archive member to be loaded. This in combination with the above -ysym flag can help determine why a link edit is failing due to multiply defined symbols
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Take the following argument, sym, as a symbol and enter it as undefined in the symbol table. This is useful for loading wholly from a library, since initially the symbol table is empty and an unresolved reference is needed to force the loading of the first object file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The symbol to be entered as undefined in the symbol table
`{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The following argument, sym, is taken to be the symbol name of the entry point of the resulting file; the address of the first section in the first segment is the default entry point
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The symbol to be the symbol name of the entry point of the resulting file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Create an indirect symbol for the symbol name definition which is defined to be the same as the symbol name indirect (which is taken to be undefined). When a definition of the symbol named indirect is linked then both symbols take on the defined type and value
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The symbol name definition
indirect
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The indirect symbol name
I{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Take the following argument, sym, as a symbol that is allowed to be undefined even without -r and produce an executable file if only such symbols are undefined
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The symbol that is allowed to be undefined
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Completely strip the output, that is, remove the symbol table and relocation information
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Strip the non-global symbols; only save external symbols
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Strip debugging symbols; only save local and global symbols
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Strip local symbols whose names begin with `L'; save all other symbols. The compiler and assembler currently strip these internally-generated labels by default and they don't tend to appear in object files seen by the link editor
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Strip the base file's (the argument to -A) symbols from the output file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Inhibit all warning messages
>{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce a load map, listing all the segments and sections give the address of and size of where each input file's section appears in the output file
-whatsloaded
7{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print a single line with the object file name for each object file that is loaded. Names of objects in archives have the form libfoo.a(bar.o)
-headerpad
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies the minimum amount of space to be left after the headers for the MH_EXECUTE format. value is a hexadecimal number. The default is to take the leftover amount of the first segment, caused by rounding it's size to the segment alignment, not covered by headers or non-zerofill sections and use that as the padded amount
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The minimum amount of space to be left
>{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Trace the progress of the link editor; print the name of each file that is loaded as it is processed in the first and second pass of the link editor
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This option specifies incremental loading, i.e. linking is to be done in a manner so that the resulting object may be read into an already executing program, the basefile. It is strongly suggested that this option NOT be used and that the rld package described in rld(3) be use instead, as it it much easier to use. The next argument, basefile, is the name of a file whose symbol table will be taken as a basis on which to define additional symbols. Only newly linked material will be entered into the a.out file, but the new symbol table will reflect every symbol defined in the base file and the newly linked files. Option(s) to specify the addresses of the segments are typicly needed since the default addresses tend to overlap with the basefile. The default format of the object file is MH_OBJECT if not specified
basefile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The already executing program
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to be linked
\b0 generates programs to be used in simple lexical analyis of text. The input files (standard input default) contain regular expressions to be searched for, and actions written in C to be executed when expressions are found. A C source program, 'lex.yy.c' is generated, to be compiled thus: cc lex.yy.c -ll This program, when run, copies unrecognized portions of the input to the output, and executes the associated C action for each regular expression that is recognized.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Place the result on the standard output instead of in file "lex.yy.c"
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print a one-line summary of statistics of the generated analyzer
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Opposite of -v; -n is default
["Faster" compilation: don't bother to pack the resulting tables; limited to small programs.
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) containing lex commands
\b0 is a utility that allows separate files to be grouped together into a single file. The resulting library file can then be used for linking by the DSP56000 Cross Linker program or for general-purpose archival storage. library is an operating system compatible filename (including optional pathname) indicating the library file to create or access. If no extension is supplied, the librarian will automatically append .lib to the filename. If no pathname is specified, the librarian will look for the library in the current directory. files is a list of operating system compatible filenames separated by blanks. For input operations the filenames may also contain an optional pathname; the path is stripped when the file is written to the library. For output operations only the filename should be used to refer to library modules.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This option adds the modules in the file list to the named library. The library file must exist, and the modules must not already be in the library
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Create a new library file and add any specified modules to it. If the library file already exists, an error is issued
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Delete named modules from the library. If the module is not in the library, an error is issued
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 List library contents. This option lists the module name as contained in the library header, the module size (minus library overhead), and the date and time the file was stored into the library. The listing output is routed to standard output so that it may be redirected to a file if desired
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This option replaces the named modules in the given library. The modules must already be present in the library file
'{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 This option updates the specified modules if they exist in the library; otherwise it adds them to the end of the library file
Extract named modules from the library. The resulting files are given the name of the modules as stored in the library module header. All files are created in the current working directory.
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The library file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to be grouped into the library file
\b0 creates a library for use with the link editor, ld(1), in the file specified in the -o output argument from the specified input object files. The input object files may be in any correct format that contains object files (fat files, archives, object files). Libtool will not put any non-object file in the input files in the output library (unlike ranlib which allows this in the archives it operates on).
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Treat all remaining arguments as names of files (or archives) and not as options
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specify the output file
output
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The output file
C{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produced the preferred type of table of contents which results in faster link editing when linking with the archive. The order of the table of contents is sorted by symbol name. The library member name of this type of table of contents is ``__.SYMDEF SORTED''. This type of table of contents can only be produced when the library does not have multiple members that define the same symbol. This is the default
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce the original type of table of contents who's order is based on the order of the members in the archive. The library member name of this type of table of contents is ``__.SYMDEF''. This type of table of contents must be used when the library has multiple members that define the same symbol
>{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Include common symbols as definitions with respect to the table of contents. This is seldom ever the behavior that is intended for linking from a library as it will force the linking of a library member just because it uses an uninitialized global that is undefined at that point in the linking. This is only included as an option because this was the original behavior of ranlib. This is not the default
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The input file(s)
\b0 is a program that processes relocatable link files produced by the DSP56000 Macro Assembler, generating an absolute load file which can be loaded directly into the DSP56000 Simulator or converted to Motorola S-record format for PROM burning. files is a list of operating system compatible filenames (including optional pathnames) separated by blanks. If no extension is supplied for a given file, the linker will automatically append .lnk to the filename. If no pathname is specified for a given file, the linker will look for that file in the current directory. The list of files will be processed sequentially in the order given and all files will be used to generate the load file and map listing.
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 This option specifies a name for the load file generated by the linker. lodfil can be any legal operating system filename, including an optional pathname. Note that there can be no intervening spaces between the -B and the optional filename
lodfil
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The name for the load file generated by the linker
_{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 This option directs the linker to pass debug information such as line number and symbol values through to the load file for use by a source level debug program. It is currently a no-op
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The linker ordinarily processes a list of link files which each contain a single relocatable code module. If the -L option is encountered, the linker treats the following pathname as a library file, and searches the file for any outstanding unresolved references. Note that there can be no intervening spaces between the -L and the library name. If a module is found in the library that resolves an outstanding external reference, the module is read from the library and included in the load file output. The linker continues to search a library until all external references are resolved or no more references can be satisfied within the current library. The linker searches a library only once, when it is encountered on the command line. Therefore, the position of the -L option on the command line is significant
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The library file to search for unresolved references
,{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 This option specifies that a map file is to be created. mapfil can be any legal operating system filename, including an optional pathname. Note that there can be no intervening spaces between the -M and the optional filename. If a pathname is not specified, the file will be created in the current directory. If no filename is specified, the linker will use the basename (filename without extension) of the first filename encountered in the link input file list. The resulting output file will have an extension of .map. If the -M option is not specified, then the linker will not generate a map file. The -M option should be specified only once
mapfil
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The name for the map file to be created
O{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 By default the linker generates instructions and data for the load file beginning at absolute location zero for all DSP56000 memory spaces. This option allows the programmer to redefine the start address for any memory space and associated location counter. The -O option may be specified as many times as needed on the command line. Note that there can be no intervening spaces between the -O and the memory space specifier
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 One of the single-character memory space identifiers (X, Y, L, P). The letter may be upper or lower case
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 A letter indicating the high (H) or low (L) location counters. If no counter is specified the default counter is used
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Signifies the desired physical mapping for all relocatable code in the given memory space. It may be I for internal memory, E for external memory, or B for bootstrap memory (valid only in P program memory space). If map is not supplied, then no explicit mapping is presumed
<origin>
7{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 A four-digit hexadecimal number in the range 0-FFFF signifying the new relocation address for the given memory space (MUST BE PRECEDED BY A ':')
k{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 This option indicates that a memory map file is to be read to determine the absolute placement of sections in DSP56000 memory. memfil can be any legal operating system filename, including an optional pathname. Note that there can be no intervening spaces between the -R and the optional filename. If a pathname is not specified, an attempt will be made to open the file in the current directory. If no filename is specified, the linker will use the basename (filename without extension) of the first filename encountered in the link input file list, appending an extension of .mem. If the -R option is not specified, then the linker will not use a memory map file. The -R option should be specified only once
memfil
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The memory map file to be read
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The input is one or more object or library archive (see ar(1)) files. The standard output is a list of pairs of object file names, meaning that the first file of the pair refers to external identifiers defined in the second. The output may be processed by tsort(1) to find an ordering of a library suitable for one-pass access by ld(1). This brash one-liner intends to build a new library from existing `.o' files. ar cr library `lorder *.o | tsort` The need for lorder may be vitiated by use of ranlib(1), which converts an ordered archive into a randomly accessed library.
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The object or library archive files to be ordered
\b0 is a macro processor intended as a front end for Ratfor, C, and other languages. Each of the argument files is processed in order; if there are no arguments, or if an argument is `-', the standard input is read. The processed text is written on the standard output.\
Macro calls have the form\
\b name(arg1,arg2, . . . , argn)
\b0 \
The `(' must immediately follow the name of the macro. If a defined macro name is not followed by a `(', it is deemed to have no arguments. Leading unquoted blanks, tabs, and newlines are ignored while collecting arguments. Potential macro names consist of alphabetic letters, digits, and underscore `_', where the first character is not a digit.\
Left and right single quotes (`') are used to quote strings. The value of a quoted string is the string stripped of the quotes.\
When a macro name is recognized, its arguments are collected by searching for a matching right parenthesis. Macro evaluation proceeds normally during the collection of the arguments, and any commas or right parentheses which happen to turn up within the value of a nested call are as effective as those in the original input text. After argument collection, the value of the macro is pushed back onto the input stream and rescanned.\
M4 makes available the following built-in macros. They may be redefined, but once this is done the original meaning is lost. Their values are null unless otherwise stated.\
define\
The second argument is installed as the value of the macro whose name is the first argument. Each occurrence of $n in the replacement text, where n is a digit, is replaced by the n-th argument. Argument 0 is the name of the macro; missing arguments are replaced by the null string.\
undefine\
removes the definition of the macro named in its argument.\
ifdef\
If the first argument is defined, the value is the second argument, otherwise the third. If there is no third argument, the value is null. The word unix is predefined on UNIX versions of m4.\
changequote\
Change quote characters to the first and second arguments. Changequote without arguments restores the original values (i.e., `').\
divert\
M4 maintains 10 output streams, numbered 0-9. The final output is the concatenation of the streams in numerical order; initially stream 0 is the current stream. The divert macro changes the current output stream to its (digit-string) argument. Output diverted to a stream other than 0 through 9 is discarded.\
undivert\
causes immediate output of text from diversions named as arguments, or all diversions if no argument. Text may be undiverted into another diversion. Undiverting discards the diverted text.\
divnum\
returns the value of the current output stream.\
reads and discards characters up to and including the next newline.\
ifelse\
has three or more arguments. If the first argument is the same string as the second, then the value is the third argument. If not, and if there are more than four arguments, the process is repeated with arguments 4, 5, 6 and 7. Otherwise, the value is either the fourth string, or, if it is not present, null.\
incr\
returns the value of its argument incremented by 1. The value of the argument is calculated by interpreting an initial digit-string as a decimal number.\
eval\
evaluates its argument as an arithmetic expression, using 32-bit arithmetic. Operators include +, -, *, /, %, ^ (exponentiation); relationals; parentheses.\
returns the number of characters in its argument.\
index\
returns the position in its first argument where the second argument begins (zero origin), or -1 if the second argument does not occur.\
substr\
returns a substring of its first argument. The second argument is a zero origin number selecting the first character; the third argument indicates the length of the substring. A missing third argument is taken to be large enough to extend to the end of the first string.\
translit\
transliterates the characters in its first argument from the set given by the second argument to the set given by the third. No abbreviations are permitted.\
include\
returns the contents of the file named in the argument.\
sinclude\
is identical to include, except that it says nothing if the file is inaccessible.\
syscmd\
executes the UNIX command given in the first argument. No value is returned.\
maketemp\
fills in a string of XXXXX in its argument with the current process id.\
errprint\
prints its argument on the diagnostic output file.\
dumpdef\
prints current names and definitions, for the named items, or for all if no arguments are given.
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to process
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The
\b make
\b0 utility executes commands in makefile to update one or more targets (see below). If no -f option is present, `makefile' and `Makefile' are tried in order. If makefile is `-', standard input is taken. More than one -f option may appear.\
The make utility updates a target if it depends on prerequisite files that have been modified since the target was last modified, or if the target does not exist.\
A makefile contains a sequence of entries that specify dependencies. The first line of an entry is a blank separated list of targets, then a colon, then a list of prerequisite files. Text following a semicolon, and all following lines that begin with a tab, are shell commands to be executed to update the target. If a name appears on the left of more than one `colon' line, then it depends on all of the names on the right of the colon on those lines, but only one command sequence may be specified for it. If a name appears on a line with a double colon :: then the command sequence following that line is performed only if the name is out of date with respect to the names to the right of the double colon, and is not affected by other double colon lines on which that name may appear.\
Two special forms of a name are recognized. A name like a(b) means the file named b stored in the archive named a. A name like a((b)) means the file stored in archive a containing the entry point b.\
Sharp and newline surround comments.\
The following makefile says that `pgm' depends on two files `a.o' and `b.o', and that they in turn depend on `.c' files and a common file `incl'.\
pgm: a.o b.o cc a.o b.o -lm -o pgm a.o: incl a.c cc -c a.c b.o: incl b.c cc -c b.c\
Makefile entries of the form\
string1 = string2\
are macro definitions. Subsequent appearances of $(string1) or $\{string1\} are replaced by string2. If string1 is a single character, the parentheses or braces are optional.\
The make utility infers prerequisites for files for which makefile gives no construction commands. For example, a `.c' file may be inferred as prerequisite for a `.o' file and be compiled to produce the `.o' file. Thus the preceding example can be done more briefly:\
pgm: a.o b.o cc a.o b.o -lm -o pgm a.o b.o: incl\
Prerequisites are inferred according to selected suffixes listed as the `prerequisites' for the special name `.SUFFIXES'; multiple lists accumulate; an empty list clears what came before. Order is significant; the first possible name for which both a file and a rule as described in the next paragraph exist is inferred. The default list is\
.SUFFIXES: .out .o .c .e .r .f .y .l .s .p\
The rule to create a file with suffix s2 that depends on a similarly named file with suffix s1 is specified as an entry for the `target' s1s2. In such an entry, the special macro $* stands for the target name with suffix deleted, $@ for the full target name, $< for the name of the file that the target depends upon, and $? for the list of prerequisites that are out of date. For example, a rule for making optimized `.o' files from `.c' files is\
.c.o: ; cc -c -O -o $@ $*.c\
Certain macros are used by the default inference rules to communicate optional arguments to any resulting compilations. In particular, `CFLAGS' is used for cc(1) options, and `LFLAGS' and `YFLAGS' for lex and yacc(1) options. In addition, the macro `MFLAGS' is filled in with the initial command line options supplied to make. This simplifies maintaining a hierarchy of makefiles as one may then invoke make on makefiles in subdirectories and pass along useful options such as -k, explained below.\
Another special macro is `VPATH'. The `VPATH' macro should be set to a list of directories separated by colons. When make searches for a file as a result of a dependency relation, it will first search the current directory and then each of the directories on the `VPATH' list. If the file is found, the actual path to the file will be used, rather than just the filename. If `VPATH' is not defined, then only the current directory is searched.\
One use for `VPATH' is when one has several programs that compile from the same source. The source can be kept in one directory and each set of object files (along with a separate makefile) would be in a separate subdirectory. The `VPATH' macro would point to the source directory in this case.\
Command lines are executed one at a time, each by its own shell. A line is printed when it is executed unless the special target `.SILENT' is in makefile, or the first character of the command is `@'.\
Commands returning nonzero status (see intro(1)) cause make to terminate unless the special target `.IGNORE' is in makefile or the command begins with <tab><hyphen>.\
Interrupt and quit cause the target to be deleted unless the target is a directory or depends on the special name `.PRECIOUS'.
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The makefile to use to do the make
makefile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file containing the make commands
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Debug mode. Print detailed information on files and times examined
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Equivalent to the special entry `.IGNORE:'
1{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 When a command returns nonzero status, abandon work on the current entry, but continue on branches that do not depend on the current entry
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Trace and print, but do not execute the commands needed to update the targets
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the complete set of macro definitions and target descriptions
[{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Question. The make command returns a zero or non-zero status code depending upon whether the target file is or is not up to date, without executing any commands on the action lines
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Touch, i.e. update the modified date of targets, without executing any commands on the action lines
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Equivalent to an initial special entry `.SUFFIXES:' with no list
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Equivalent to the special entry `.SILENT:'
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to make
\b0 processes the raw dependency files produced by the cpp -MD option. There is one line in the file for every #include encountered, but repeats and patterns like .../dir1/../dir2 appear which should reduce to .../dir2. Md canonicalizes and flushes repeats from the dependency list. It also sorts the file names and "fills" them to a 78 character line. Md assumes that dependency information is sorted by .o file name and it procedes to merge in (adding or replacing, as appropriate) the new dependency lines it has generated. For efficiency, md assumes that any .d files it is given that were created before the creation date of the "makefile" were processed already.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Force an update of the dependencies even though the dependency file is more recent than the .d file (This implies that md has been run already.) This is the default
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Subswitch for debugging. Expert mode
:{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies the dependency file to be upgraded. If -m is not explicitly specified then the dependencies are updated in either makefile or Makefile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The dependency file to be upgraded
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies a dependency file to be updated. If this file doesn't initially exist it is created
outputfile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The dependency file to be updated
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Set the verbose flag
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The raw dependency file(s) to be processed
\b0 is used to create files of error messages. Its use can make programs with large numbers of error diagnostics much smaller, and reduce system overhead in running the program as the error messages do not have to be constantly swapped in and out.\
Mkstr will process each of the specified files, placing a massaged version of the input file in a file whose name consists of the specified prefix and the original name. A typical usage of mkstr would be\
\b mkstr pistrings xx *.c
\b0 \
This command would cause all the error messages from the C source files in the current directory to be placed in the file pistrings and processed copies of the source for these files to be placed in files whose names are prefixed with xx.\
To process the error messages in the source to the message file mkstr keys on the string `error("' in the input stream. Each time it occurs, the C string starting at the `"' is placed in the message file followed by a null character and a new-line character; the null character terminates the message so it can be easily used when retrieved, the new-line character makes it possible to sensibly cat the error message file to see its contents. The massaged copy of the input file then contains a lseek pointer into the file which can be used to retrieve the message, i.e.:\
char efilname[] = "/usr/lib/pi_strings"; int efil = -1;\
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Causes the error messages to be placed at the end of the specified message file for recompiling part of a large mkstred program
messagefile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The error message file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The prefix for the output files
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The input file(s) to generate messages for
\b0 uses the interface definitions in the definitions-file and creates two C modules: subsystemUser.c and subsystemServer.c. These modules implement the user and the server ends of a remote procedure call interface to the subsystem. A header file subsystem.h is also generated that defines the external functions and can be included in any code using the user interface.\
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\fc0\cf0 For additional documentation, see the chapter "The Mach Operating System" in the NeXTSTEP Operating System Software manual (this manual can be viewed on-line using the NeXT Digital Librarian).\
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Use msg_rcp(). The default is -r
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Use msg_send()/msg_receive() pairs. The default is -r
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Generate code for multi-threaded applications (not implemented yet). The default is -T
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Generate code for single thread application. The default is -T
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Warning statements will be suppressed. The default is -Q
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Warning statements are printed. The default is -Q
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 All the types, routines and arguments are printed out as the are encountered. The default is -V
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The compilation is silent. The default is -V
definitions-file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file containing the definitions
\b0 reads file.msg and produces fileSpeaker.m fileSpeaker.h fileListener.m fileListener.h, which define Speaker and Listener subclasses for the list of messages in file.msg.\
The list of messages has the same syntax as the list of messages in a header file for a class. For example:\
\b0 prints the name list (symbol table) of each object file in the argument list. If an argument is an archive, a listing for each object file in the archive will be produced. File can be of the form libx.a(x.o) and then only symbols from that member of the object file are listed (the ()'s have to be quoted to get by the shell). If no file is given, the symbols in "a.out" are listed.\
Each symbol name is preceded by its value (blanks if undefined). Then if the -m option is not specified one of the letters U (undefined), A (absolute), T (text section symbol), D (data section symbol), B (bss section symbol), C (common symbol), f file name, for debugger symbol table entries (see -a below), S (symbol in a section other than those above) or I (indirect symbol) is printed for the symbol type. If the symbol is local (non-external) the type letter is in lower case.\
If the symbol is a Objective-C method the symbol name is +
_[Class_name(category_name) method:name:] where a `+' is used for class methods and a `-' is used for instance methods and (category_name) is only printed if the method is in a category.\
The output is sorted alphabetically by default.
[12@]
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print all symbol table entries including those inserted for use by debuggers
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print only global (external) symbols
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Sort numerically rather than alphabetically
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Prepend file or archive element name to each output line rather than only once
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Don't sort; print in symbol-table order
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Sort in reverse order
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print only undefined symbols
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the N_SECT type symbols (Mach-O symbols) as (segment_name, section_name) followed by either external or non-external and then the symbol name. Also undefined, common, absolute and indirect symbols get printed as (undefined), (common) (absolute) and (indirect) respectively
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the symbol table entry's fields in hex along with the name as a string
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Just print the symbol names (no value or type)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 List only those symbols in the section (segname,sectname)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment name
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The section name
${\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 List a pseudo symbol .section_start if no symbol has the value of the start of the section (used with the -s option above)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to print the name list for
\b0 prints specified parts of object files or libraries. The file arguments may be of the form libx.a(foo.o) which specifies to print information only about that object file and not the entire library (typically this argument must be quoted, ``libx.a(foo.o)'', to get it past the shell). Otool understands both Mach-O (Mach object) files and 4.3BSD a.out file formats. It can print the specified information in either its raw (numeric) form (without the -v flag) or in a symbolic form, using macro names of constants, etc. (with the -v or -V flag).
[16@]
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the archive header if the file is an archive
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the contents of the `__.SYMDEF' file if the file is an archive
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the mach header (for Mach-O files) or the exec header (for 4.3BSD a.out files)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the load commands (for Mach-O files)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the names of the target shared libraries the object file uses and their minor version number
.{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the contents of the section (segname,sectname). If the -v flag is specified the section is printed as is type if that is not zero
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The segment name of the section to be printed
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The section name to be printed
x{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the contents of the __text section (for Mach-O files) or the text segment (for 4.3BSD a.out files). With the -v flag this disassembles the text. And with -V it also symbolically disassembles the operands
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the contents of the __data section (for Mach-O files) or the data segment (for 4.3BSD a.out files)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the contents of the __OBJC segment used by the Objective-C runtime system
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the strings in the __selector_strs and their offset's in that section
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the relocation entries
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the argument strings (argv[] and envp[]) from a core file
I{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Used with the -t and -v or -V options to start the disassembly from symbol name and continue to the end of the __text section. -T hex number Used with the -t and -v or -V options to indicate an 4.3BSD a.out OMAGIC file was really loaded at hex number rather than the default. This is needed because there is no way to tell where an 4.3BSD a.out file was loaded from the file if it was not loaded at the default address
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The name of the symbol to start disassembly from
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints the specified information in raw numeric form
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints the specified information in symbolic form
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Don't print leading addresses when printing contents of sections
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The object file(s) or libraries to print
\b0 reads input from file and creates C-callable procedures that send PostScript language code to the PostScript interpreter. For complete documentation of pswrap and the language it accepts, see the pswrap Reference Manual from Adobe Systems, Inc.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produces ANSI C procedure prototypes
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Allows a large file to be processed
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produces a header file of C declarations for the generated procedures in filename
filename
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file containing the generated procedures
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The
\b ptags
\b0 command prints information about objects indexed in a tags file created by ctags(1). If no objects are given as arguments they are read from stdin. The -flstce options specify which fields to print; if none of these options are given, the entire entry (file, location, size, type, caller list, callee list) is printed. A string beginning with a slash, /words ..., may be appended to an object name, causing only those index entries for object which also reference words to be printed. For instance, ptags new/timer.c attempts to print the tag information for new found in the file timer.c.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print all occurrences of the given object
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the file in which each object is defined
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the location (search pattern or line number) of each object definition
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the size of each object (in lines)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the type of each object (function, macro, global, etc)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the caller list for each object
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the callee list for each object
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Surround locations (search patterns) and callee/caller lists with single quotes '...', to simplify the use of ptags in shell scripts
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Attempt to locate and print the source text for the given object
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print ``tagfile: object:'' before the fields for each object
R{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Set the path of tag files searched to tagpath (the default is $TAGS). Giving the -T option more than once appends to the path (i.e., -T"a b" is equivalent to -T a -T b)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 If there's more than one occurrence of the given object, print at most number of them (default is 1)
number
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The maximum number of the same occurence to print
object
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The object(s) to print tag information about
\b0 adds or updates the table of contents to each archive so it can be linked by the link editor. The table of contents is a file at the beginning of the archive that indicates which symbols are defined in which library members. Ranlib rewrites the archive, so that sufficient temporary file space must be available in the file system which contains the current directory. The name for a table of contents begins with ``__.SYMDEF''. Currently there are two types of table of contents produced by ranlib and understood by the link editor, ld(1).
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produced the preferred type of table of contents which results in faster link editing when linking with the archive. The order of the table of contents is sorted by symbol name. The library member name of this type of table of contents is ``__.SYMDEF SORTED''. This type of table of contents can only be produced when the library does not have multiple members that define the same symbol. This is the default
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce the original type of table of contents who's order is based on the order of the members in the archive. The library member name of this type of table of contents is ``__.SYMDEF''. This type of table of contents must be used when the library has multiple members that define the same symbol
>{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Include common symbols as definitions with respect to the table of contents. This is seldom ever the behavior that is intended for linking from a library as it will force the linking of a library member just because it uses an uninitialized global that is undefined at that point in the linking. This is only included as an option because this was the original behavior of ranlib. This is not the default
u{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Only ``touch'' the archives and do not modify them. This is useful after copying an archive or using the -t option of make(1) in order to avoid having ld(1) complain about an ``out of date'' symbol table
archive
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The archive(s) to add to or update
\b0 creates new RCS files or changes attributes of existing ones. An RCS file contains multiple revisions of text, an access list, a change log, descriptive text, and some control attributes. For rcs to work, the caller's login name must be on the access list, except if the access list is empty, the caller is the owner of the file or the superuser, or the -i option is present. Files ending in `,v' are RCS files, all others are working files. If a working file is given, rcs tries to find the corresponding RCS file first in directory ./RCS and then in the current directory, as explained in co (1).
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Creates and initializes a new RCS file, but does not deposit any revision. If the RCS file has no path prefix, rcs tries to place it first into the subdirectory ./RCS, and then into the current directory. If the RCS file already exists, an error message is printed
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Appends the login names appearing in the commaseparated list logins to the access list of the RCS file
logins
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The login names to be appended
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Appends the access list of oldfile to the access list of the RCS file
oldfile
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file containing the access list
K{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Erases the login names appearing in the comma
separated list logins from the access list of the RCS file. If logins is omitted, the entire access list is erased
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\f0\b0\i0\ulnone\ql\fs24\fi0\li0\gray0\fc0\cf0\up0\dn0 The login names to erase
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Sets the comment leader to string. The comment leader is printed before every log message line generated by the keyword $Log$ during checkout (see co). This is useful for programming languages without multi-line comments. During rcs -i or initial ci, the comment leader is guessed from the suffix of the working file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The string to set the comment header to
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Locks the revision with number rev. If a branch is given, the latest revision on that branch is locked. If rev is omitted, the latest revision on the trunk is locked. Locking prevents overlapping changes. A lock is removed with ci or rcs -u (see below)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The revision number to lock
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Unlocks the revision with number rev. If a branch is given, the latest revision on that branch is unlocked. If rev is omitted, the latest lock held by the caller is removed. Normally, only the locker of a revision may unlock it. Somebody else unlocking a revision breaks the lock. This causes a mail message to be sent to the original locker. The message contains a commentary solicited from the breaker. The commentary is terminated with a line containing a single `.' or control-D
Q{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Sets locking to strict. Strict locking means that the owner of an RCS file is not exempt from locking for checkin. This option should be used for files that are shared
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Sets locking to non-strict. Non-strict locking means that the owner of a file need not lock a revision for checkin. This option should NOT be used for files that are shared. The default (-L or -U) is determined by your system administrator
k{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Associates the symbolic name name with the branch or revision rev. Rcs prints an error message if name is already associated with another number. If rev is omitted, the symbolic name is deleted
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The symbolic name
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Same as -n, except that it overrides a previous assignment of name
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Deletes ("outdates") the revisions given by range. A range consisting of a single revision number means that revision. A range consisting of a branch number means the latest revision on that branch. A range of the form rev1-rev2 means revisions rev1 to rev2 on the same branch, -rev means from the beginning of the branch containing rev up to and including rev, and revmeans from revision rev to the end of the branch containing rev. None of the outdated revisions may have branches or locks
range
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The range of revisions to delete
"{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Sets the state attribute of the revision rev to state. If rev is omitted, the latest revision on the trunk is assumed; If rev is a branch number, the latest revision on that branch is assumed. Any identifier is acceptable for state. A useful set of states is Exp (for experimental), Stab (for stable), and Rel (for released). By default, ci sets the state of a revision to Exp
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The state to set the state attribute to
R{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Writes descriptive text into the RCS file (deletes the existing text). If txtfile is omitted, rcs prompts the user for text supplied from the std. input, terminated with a line containing a single `.' or control-D. Otherwise, the descriptive text is copied from the file txtfile. If the -i option is present, descriptive text is requested even if -t is not given. The prompt is suppressed if the std. input is not a terminal
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The RCS file(s) to create or modify
\b0 runs diff (1) to compare two revisions of each RCS file given. A file name ending in ',v' is an RCS file name, otherwise a working file name. Rcsdiff derives the working file name from the RCS file name and vice versa, as explained in co (1). Pairs consisting of both an RCS and a working file name may also be specified. All options except -r have the same effect as described in diff(1). If both rev1 and rev2 are omitted, rcsdiff compares the latest revision on the trunk with the contents of the corresponding working file. This is useful for determining what you changed since the last checkin. If rev1 is given, but rev2 is omitted, rcsdiff compares revision rev1 of the RCS file with the contents of the corresponding working file. If both rev1 and rev2 are given, rcsdiff compares revisions rev1 and rev2 of the RCS file. Both rev1 and rev2 may be given numerically or symbolically.
[14@]
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Give RCS file name to compare against other RCS files
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\f0\b0\i0\ulnone\ql\fs24\fi0\li0\gray0\fc0\cf0\up0\dn0 The RCS file to compare
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Ignore blank spaces and tabs
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce n lines of context (default is 3)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The number of lines of context to produce
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce a file of edit commands to recreate file2 form file1 usinf ed
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Recreate file1 from file2 but not with ed
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Perform the comparison quickly
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Produce a file of edit commands to recreate file1 from file2 and counting changed lines
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Create a merged version of file1 and file2 on standard output
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\f0\b0\i0\ulnone\ql\fs24\fi0\li0\gray0\fc0\cf0\up0\dn0 The string defining which file will be produced
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Ignore all whitespace
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Ignore upper and lower case distinctions
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Expand tabs on output
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Long format output
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Report files that are identical
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Begin directory comparison with file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to begin the directory comparison with
\b0 incorporates the changes between rev1 and rev2 of an RCS file into the corresponding working file. If -p is given, the result is printed on the std. output, otherwise the result overwrites the working file.\
A file name ending in ',v' is an RCS file name, otherwise a working file name. Merge derives the working file name from the RCS file name and vice versa, as explained in co (1). A pair consisting of both an RCS and a working file name may also be specified.\
Rev1 may not be omitted. If rev2 is omitted, the latest revision on the trunk is assumed. Both rev1 and rev2 may be given numerically or symbolically.\
Rcsmerge prints a warning if there are overlaps, and delimits the overlapping regions as explained in co -j. The command is useful for incorporating changes into a checked-out revision.\
EXAMPLES Suppose you have released revision 2.8 of f.c. Assume furthermore that you just completed revision 3.4, when you receive updates to release 2.8 from someone else. To combine the updates to 2.8 and your changes between 2.8 and 3.4, put the updates to 2.8 into file f.c and execute\
\b rcsmerge -p -r2.8 -r3.4 f.c >f.merged.c
\b0 \
Then examine f.merged.c. Alternatively, if you want to save the updates to 2.8 in the RCS file, check them in as revision 2.8.1.1 and execute co -j:\
\b ci -r2.8.1.1 f.c co -r3.4 -j2.8:2.8.1.1 f.c
\b0 \
As another example, the following command undoes the changes between revision 2.4 and 2.8 in your currently checked out revision in f.c.\
\b rcsmerge -r2.8 -r2.4 f.c
\b0 \
Note the order of the arguments, and that f.c will be overwritten.
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 The result is printed on the std. output, otherwise the result overwrites the working file
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Specify the RCS files to merge
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The revision number of the RCS files
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The working file to merge the changes between the RCS files into
\b0 prints information about RCS files. Files ending in `,v' are RCS files, all others are working files. If a working file is given, rlog tries to find the corresponding RCS file first in directory ./RCS and then in the current directory, as explained in co (1). Rlog prints the following information for each RCS file: RCS file name, working file name, head (i.e., the number of the latest revision on the trunk), access list, locks, symbolic names, suffix, total number of revisions, number of revisions selected for printing, and descriptive text. This is followed by entries for the selected revisions in reverse chronological order for each branch. For each revision, rlog prints revision number, author, date/time, state, number of lines added/deleted (with respect to the previous revision), locker of the revision (if any), and log message. Without options, rlog prints complete information.
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Ignores RCS files that have no locks set; convenient in combination with -R, -h, or -l
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Only prints the name of the RCS file; convenient for translating a working file name into an RCS file name
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints only RCS file name, working file name, head, access list, locks, symbolic names, and suffix
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints the same as -h, plus the descriptive text
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints information about revisions with a checkin date/time in the ranges given by the semicolonseparated list of dates. A range of the form d1<d2 or d2>d1 selects the revisions that were deposited between d1 and d2, (inclusive). A range of the form <d or d> selects all revisions dated d or earlier. A range of the form d< or >d selects all revisions dated d or later. A range of the form d selects the single, latest revision dated d or earlier. The date/time strings d, d1, and d2 are in the free format explained in co (1). Quoting is normally necessary, especially for < and >. Note that the separator is a semicolon
dates
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The date range to print revisions information about
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints information about locked revisions. If the comma-separated list lockers of login names is given, only the revisions locked by the given login names are printed. If the list is omitted, all locked revisions are printed
lockers
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The list of login names print locked revisions for
y{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints information about revisions given in the comma-separated list revisions of revisions and ranges. A range rev1-rev2 means revisions rev1 to rev2 on the same branch, -rev means revisions from the beginning of the branch up to and including rev, and revmeans revisions starting with rev to the end of the branch containing rev. An argument that is a branch means all revisions on that branch. A range of branches means all revisions on the branches in that range
revisions
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The list of revisions to print information about
!{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints information about revisions whose state attributes match one of the states given in the comma-separated list states
states
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The list of states for revisions to match to have information be printed
M{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Prints information about revisions checked in by users with login names appearing in the commaseparated list logins. If logins is omitted, the user's login is assumed
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The list of login names with checked in revisions to print
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The RCS or working file(s) to print information about
\b0 builds an RCS file from each SCCS file argument. The deltas and comments for each delta are preserved and installed into the new RCS file in order. Also preserved are the user access list and descriptive text, if any, from the SCCS file.
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Trace only. Prints detailed information about the SCCS file and lists the commands that would be executed to produce the RCS file. No commands are actually executed and no RCS file is made
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Verbose. Prints each command that is run while it is building the RCS file
s.file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The SCCS file to convert
\b0 extracts and or replaces the named sections from the input_file and creates an output_file (if replacing a section). The segment and section names are the same as specified to ld(1) with the -segcreate option. The segment and section names of an object file can be examined with the -l option to otool(1). Only sections in segments that have no relocation to or for them can be replaced (marked with the SG_NORELOC segment flag) but all sections can be extracted.
-extract
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Extracts the section specified by the segment name section name pair and places the contents in the specified filename
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to place the extracted section in
-replace
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Will replace the section specified by the segment name section name pair and places and take the new contents for the section from the specified filename. The -output filename option must also be specified. The resulting size of the section will be rounded to a multiple of 4 bytes and padded with zero bytes if necessary
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file containing the information to replace the section with
-output
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies the output file to create when replacing sections
output_file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The output file to create
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The name of the section(s) to be extracted or replaced
input_file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file the source section is in
\b0 (without the -m option) prints the (decimal) number of bytes required by the __TEXT, __DATA and __OBJC segments. All other segments are totaled and that size is listed in the `others' column. The final two columns is the sum in decimal and hexadecimal. If no file is specified, a.out is used.
G{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Print the sizes of the Mach-O segments and sections as well as the total sizes of the sections in each segment and the total size of the segments in the file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 When used with the -m option, also print the addresses and offsets of the sections and segments
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 When used with the -m option, print the values in hexadecimal (with leading 0x's) rather than decimal
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The object file to be sized
\b0 looks for ASCII strings in a binary file. A string is any sequence of 4 or more printing characters ending with a newline or a null. Unless the flag is given, strings only looks in the initialized data space of object files. If the -a flag is given, strings looks for strings in the data segment as well as in the text segment. If the -o flag is given, each string is preceded by its offset in the file (in octal). If the -number flag is given then number is used as the minimum string length rather than 4. Strings is useful for identifying random object files and many other things.
\b0 looks for strings in the data segment as well as in the text segment
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Each string is preceded by its offset in the file (in octal)
E{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 If no number is given strings only looks in the initialized data space of object files. Otherwise number is used as the minimum string length rather than 4
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The minimum string length
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to find strings in
\b0 removes or modifys the symbol table attached to the output of the assembler and link editor. This is useful to save space after a program has been debugged and to limit the symbols for use with rld(3). Strip no longer removes relocation entries under any condition. Instead it up dates the external relocation entries to reflect the resulting symbol table and prints a error message for those symbols not in the resulting symbol table and needed by an external relocation entry. The link editor ld(1) is the only program that can strip relocation entries and know if it is safe to do so.\
The effect of strip without any options is the same as use of the -s option of ld(1). The options -S, -x, and -X have the same effect as the ld(1) options.\
The options to strip(1) can be combined to trim the symbol table to just what is desired. This is to support stripping executables for later use with rld(3). This allows control of the interface that the executable wants to provide to the objects that it will load with rld and it will not have to publish symbols that are not part of it's interface. For example an executable that wishes to allow only a subset of it's global symbols but all of the shared libraries globals to be used would be stripped with: % strip -s interface_symbols -A executable where the file interface_symbols would contain only those symbols from the executable that it wishes the objects loaded with rld to have access to. Another example is an object that is maded up of a number of other objects that will be loaded into an executable would built and then stripped with:\
\b % ld -o relocatable.o -r a.o b.o c.o\
% strip -s interface_symbols -u relocatable.o\
\b0 \
which would leave only the undefined symbols and symbols listed in the file interface_symbols in the object file. In this case strip(1) has updated the relocation entries to reflect the new symbol table.
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Save the symbol table entries for the global symbols listed in filename. The symbol names listed in filename must be one per line with no other white space in the file except the newlines on the end of each line
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to save the symbol table entries in
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Save the debugging symbol table entries for each source file name listed in filename. The source file names listed in filename must be one per line with no other white space in the file except the newlines on the end of each line. And they must be just the base name of the source file without any leading directories
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to save the debugging symbol table entries in
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Save all global absolute symbols except those with a value of zero and that are not objective-C class symbols. This is intended for use of programs that use rld(3) and only want the loaded code to use symbols from the shared libraries
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Save all N_SECT global symbols. This is intended for use with executable programs in combination with -A to remove the symbols needed for correct static link editing which are not needed for use with rld(3) where using the -s filename would be too much trouble
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Save all undefined symbols. This is intended for use with relocatable objects to save symbols referred to by external relocation entries. Note that common symbols are also referred to by external relocation entries and this flag does not save those symbols
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Save local symbols except for those whose names begin with `L'
<{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 `Strip' the output by removing all symbols except locals and globals. That is debugging symbols created by the -g option to cc(1) and other compilers
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f0\b0\i0\ulnone\fs24\fc0\cf0 Do not preserve local (non-.globl) symbols in the output symbol table; only save external symbols
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 Treat all remaining arguments as file names and not options
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to strip
\b0 translates the Fortran program specified by file (standard input default) into a Ratfor program. Wherever possible, Ratfor control constructs replace the original Fortran. Statement numbers appear only where still necessary. Cosmetic changes are made, including changing Hollerith strings into quoted strings and relational operators into symbols (.e.g. ".GT." into ">"). The output is appropriately indented.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Input is accepted in standard format, i.e. comments are specified by a c, C, or * in column 1, and continuation lines are specified by a nonzero, nonblank character in column 6. Normally input is in the form accepted by f77(1)
!{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Do not turn computed goto statements into switches. (Ratfor does not turn switches back into computed goto statements.)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Turn sequences of else ifs into a non-Ratfor switch
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Generate goto's instead of multilevel break statements
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Generate goto's instead of multilevel next statements
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Make the nonzero integer n the lowest valued label in the output program (default 10)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The lowest valued label in the output program
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Increment successive labels in the output program by the nonzero integer n (default 1)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The number to increment successive labels by
:{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 If n is 0 (default), place code within a loop only if it can lead to an iteration of the loop. If n is nonzero, admit a small code segments to a loop if otherwise the loop would have exits to several places including the segment, and the segment can be reached only from the loop. `Small' is close to, but not equal to, the number of statements in the code segment. Values of n under 10 are suggested
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The number of statements in a loop code segment
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file to translate into Ratfor
\b0 is useful for removing ifdef'ed lines from a file while otherwise leaving the file alone. Unifdef is like a stripped-down C preprocessor: it is smart enough to deal with the nested ifdefs, comments, single and double quotes of C syntax so that it can do its job, but it doesn't do any including or interpretation of macros. Neither does it strip out comments, though it recognizes and ignores them. You specify which symbols you want defined -Dsym or undefined -Usym and the lines inside those ifdefs will be copied to the output or removed as appropriate. The ifdef, ifndef, else, and endif lines associated with sym will also be removed. Ifdefs involving symbols you don't specify are untouched and copied out along with their associated ifdef, else, and endif lines. If an ifdef X occurs nested inside another ifdef X, then the inside ifdef is treated as if it were an unrecognized symbol. If the same symbol appears in more than one argument, only the first occurrence is significant. The -l option causes unifdef to replace removed lines with blank lines instead of deleting them. If you use ifdefs to delimit non-C lines, such as comments or code which is under construction, then you must tell unifdef which symbols are used for that purpose so that it won't try to parse for quotes and comments in those ifdef'ed lines. You specify that you want the lines inside certain ifdefs to be ignored but copied out with -idsym and -iusym similar to -Dsym and -Usym above. If you want to use unifdef for plain text (not C code), use the -t option. This makes unifdef refrain from attempting to recognize comments and single and double quotes. Unifdef copies its output to stdout and will take its input from stdin if no file argument is given. If the -c argument is specified, then the operation of unifdef is complemented, i.e. the lines that would have been removed or blanked are retained and vice versa.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f1\b0\i0\ulnone\fs24\fc0\cf0 the lines inside those ifdefs will be copied to the output or removed as appropriate
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The symbol to define
-idsym
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Define symbol sym but ignore it
\b0 outputs a string made up of the SGS version name, the current user's login identifier, and the current time and date. Vers_string may only be used within an SGS project.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The output is formed as a C declaration for the global character array SGS_VERS
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The output is formed like the -c option, but "PROGRAM" is replaced with "LIBRARY" and the declaration is static
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The output is simply the program name and suffixed with the current version number of the SGS version root
PROGRAM
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The program to generate a version string for
\b0 formats the program sources which are arguments in a nice style using troff(1) Comments are placed in italics, keywords in bold face, and the name of the current function is listed down the margin of each page as it is encountered. Vgrind runs in two basic modes, filter mode or regular mode. In filter mode vgrind acts as a filter in a manner similar to tbl(1). The standard input is passed directly to the standard output except for lines bracketed by the troff-like macros: .vS starts processing .vE ends processing These lines are formatted as described above. The output from this filter can be passed to troff for output. There need be no particular ordering with eqn(1) or tbl(1). In regular mode vgrind accepts input files, processes them, and passes them to troff(1) for output. In both modes vgrind passes any lines beginning with a decimal point without conversion.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Similar to the same option in troff causing formatted text to go to the standard output
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Forces no keyword bolding
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Outputs the index file in a ``pretty'' format. The index file itself is produced whenever vgrind is run with a file called index in the current directory. The index of function definitions can then be run off by giving vgrind the -x option and the file index as argument
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Forces output to the (wide) Versatec printer rather than the (narrow) Varian
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies a point size to use on output (exactly the same as the argument of a .ps)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The point size to use on output
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies a particular header to put on every output page (default is the file name)
header
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The header to put on every header page
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies an alternate language definitions file (default is /usr/lib/vgrindefs)
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The alternate language definitions file
t{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Specifies the language to use. Currently known are PASCAL (-lp), MODEL (-lm),C (-lc or the default), CSH (-lcsh), SHELL (-lsh), RATFOR (-lr), MODULA2 (-lmod2), YACC (-lyacc), ISP (-lisp), and ICON (-lI)
language
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The language to use
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to grind
Bshow what versions of object modules were used to construct a file
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b\i0\ulnone\fs24\fc0\cf0 what
\b0 reads each file and searches for sequences of the form ``@(#)'' as inserted by the source code control system. It then prints the remainder of the string after this marker, up to a null character, newline, double quote, or ``>'' character.
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The file(s) to search for sequences in
\b0 maintains a file strings into which strings in component parts of a large program are hashed. These strings are replaced with references to this common area. This serves to implement shared constant strings, most useful if they are also read-only.\
The command\
\b xstr -c name
\b0 \
will extract the strings from the C source in name, replacing string references by expressions of the form (&xstr[number]) for some number. An appropriate declaration of xstr is prepended to the file. The resulting C text is placed in the file x.c, to then be compiled. The strings from this file are placed in the strings data base if they are not there already. Repeated strings and strings which are suffices of existing strings do not cause changes to the data base.\
After all components of a large program have been compiled a file xs.c declaring the common xstr space can be created by a command of the form\
\b xstr
\b0 \
This xs.c file should then be compiled and loaded with the rest of the program. If possible, the array can be made read-only (shared) saving space and swap overhead.\
Xstr can also be used on a single file. A command\
\b xstr name
\b0 \
creates files x.c and xs.c as before, without using or affecting any strings file in the same directory.\
It may be useful to run xstr after the C preprocessor if any macro definitions yield strings or if there is conditional code which contains strings which may not, in fact, be needed. Xstr reads from its standard input when the argument `-' is given. An appropriate command sequence for running xstr after the C preprocessor is:\
\b cc -E name.c | xstr -c cc -c x.c mv x.o name.o
\b0 \
Xstr does not touch the file strings unless new items are added, thus make can avoid remaking xs.o unless truly necessary.
4{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 Will extract the strings from the C source in name, replacing string references by expressions of the form (&xstr[number]) for some number
\b0 converts a context-free grammar into a set of tables for a simple automaton which executes an LR(1) parsing algorithm. The grammar may be ambiguous; specified precedence rules are used to break ambiguities. The output file, y.tab.c, must be compiled by the C compiler to produce a program yyparse. This program must be loaded with the lexical analyzer program, yylex, as well as main and yyerror, an error handling routine. These routines must be supplied by the user; Lex(1) is useful for creating lexical analyzers usable by yacc.
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The file y.output is prepared, which contains a description of the parsing tables and a report on conflicts generated by ambiguities in the grammar
6{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx1152\tx2304\tx3456\tx4608\tx5760\tx6912\tx8064\tx9216\tx10368\tx11520\f0\b0\i0\ulnone\fs24\fc0\cf0 The file y.tab.h is generated with the define statements that associate the yacc-assigned `token codes' with the user-declared `token names'
grammar
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 The yacc grammar